Anda di halaman 1dari 6

Entendendo a arquitetura MVC

julho 3, 2009thiago Luiz RodriguesDeixar um comentrioIr para os comentrios

MVC modelo de visualizao e controle um dos paradigmas de arquiteturas de software mais utilizados hoje. Tanto web como desktop, porem existe mais evidencia na web pela quantidade de frameworks como: JSF, OnRails, CakePHP, Django etc. Vamos entender o que MVC e quem criou. MVC foi criado por: Trygve MH Reenskaug, e implementado primeiramente na linguagem SmallTalk. Criei o Model-View-Controller padro como uma soluo bvia para o problema geral que os usurios passavam para o controle de suas informaes,que pode ser visto a partir de mltiplas perspectivas Trygye. O objetivo essencial do MVC preencher a lacuna entre o usurio, modelo mental humano do modelo computacional, criando a impresso que o usurio manipule os dados do domnio diretamente.

MVC - Model Model Modelo A representao domnio especfica da informao em que a aplicao opera. Por exemplo,Cliente fazem parte do domnio de um sistema de eCommerce. tambm conhecido como regras de negcio, exemplo em um eCommerce o cliente pode comprar e fazer um cadastro de usurio. No modelo fica apenas a representao computacional desses mtodos comprar e cadastro, nada que o usurio comum possa entender, como um cdigo compilado ou um script de alguma linguagem. View Visualizao Renderiza o modelo na forma que o modelo mental humano possa entender e interagir para controlar informaes. Poder comprar e fazer um cadastro em nosso eCommerce Controller Controle a ponte que liga a o que liga a visualizao ao modelo. Ele faz validaes e verificaes para saber qual modelo controlar, ele faz a transformao do modelo computacional em um modelo humano. Porque utilizar MVC. Digamos que voc tem sua aplicao usando arquitetura MVC voltado para web, tem o layout que o View a representao do modelo humano depois voc tem o controle e depois voc tem o modelo. Se voc alterar seu layout criar uma nova interface nada altera as regras de negocio do seu sistema ou modelo computacional e a mesma coisa com o modelo computacional se alguma regra de negocio muda no prejudica o modelo humano a visualizao do usurio. Ento porque usar? Simples!, para maior controle e manuteno dos seus produtos de software, resumindo em produtividade. Referencias: http://folk.uio.no/trygver/ http://pt.wikipedia.org/wiki/MVC

bobboyms
IMPLEMENTANDO A ARQUITETURA MVC COM PHP 5.
Parte superior do formulrio Parte inferior do formulrio
0 Trackbacks 0 Comentrios por bobboyms em 07-07-2009 s 23:19 (11293 Visualizaes)

Nesse artigo sobre o uso da arquitetura MVC com PHP 5 quero ser o mais simples possvel evitando o exagero de termos tcnicos para mostrar como implementar a arquitetura na linguagem PHP. Para entender a arquitetura MVC e compreender esse tutorial leia o artigo: Entendendo a arquitetura MVC no link abaixo. http://bobboy.wordpress.com/2009/07/...quitetura-mvc/ A primeira coisa a se fazer projetar o software. Conheo vrios desenvolvedores, que odeiam projetos de software, s lamento . No software iremos cadastrar clientes e mostrar os clientes cadastrados. Para isso criaremos o mdulo cliente que tem os seguintes atributos: +ID //identificao do usurio +NOME //Nome do usurio E os seguintes mtodos #setNome(nome) // seta um nome para o cliente #setID(id) // seta uma identificao para o cliente +all() // Retorna todos os clientes cadastrados +intoCliente(cliente) // cadastra um novo cliente Diagrama de Classe da aplicao.

Como iremos trabalhar com MVC, vamos criar uma pasta para o View, Controll, e Model Siga a imagem abaixo:

Definimos as regras de negcios do Cliente fizemos o projeto agora vamos codificar nossa Class Cliente. Essa class ser nosso modelo computacional, dentro da pasta model crie o arquivo class.cliente.php <?php //inclue o arquivo que faz a conexo com o banco de dados require('../opemDB.php'); class Cliente { public $nome; public $id; protected function setCliente($nome) { $this->nome = $nome; } protected function setId($id) { $this->id = $id; } //mtodo que rotorna todos os clientes cadastrados public function all() { $sql = "SELECT * FROM `cliente` WHERE 1"; //executa o SQL $result = mysql_query($sql); // o lao percorre todas a posies de um array contendo os dados dos clientes //como nome e id while($dados = mysql_fetch_array($result)) { $cliente = new Cliente(); //<< instancia um objeto cliente para cada cliente que

existe //objeto cliente chama o mtodo setID e passa os dados como um array de posio id $cliente->setId(array('id' => $dados['id'])); //objeto cliente chama o mtodo setNome e passa os dados como um array de posio nome $cliente->setCliente(array('nome' => $dados['nome'])); //variavel $arr do tipo array para cada nova posio recebe o objeto cliente $arr[] = $cliente; } //retorna o array com todos os objetos istanciados obs: cada registro um objeto return $arr; } //mtodo que faz o cadastro de um novo cliente public function intoCliente($cliente) { $sql = "INSERT INTO `cliente` ( `id` , `nome` ) VALUES (NULL , '$cliente');"; mysql_query($sql); } } ?> Dentro da pasta MVC que fica acima da pasta Model crie o arquivo opemDB.php, arquivo responsvel por toda conexo com o banco de dados. Nesse exemplos estamos usando o MySQL como nosso SGDB. Ento crie um banco de dados com as seguintes caractersticas abaixo segue um pseudo SQL: id int (not nul) autoInc. nome varchar (not null) 80 caracteres. Codificao. <?php $local = '127.0.0.1'; $login = 'root'; $senha = ''; $banco = 'mvc'; mysql_pconnect($local, $login, $senha); mysql_select_db($banco); ?> Dentro da pasta control vamos criar o arquivo, class.control.cliente.php. Arquivo responsvel por todo controle de nossa aplicao. Codificao. <?php //inclue a Class cliente. require('../model/class.cliente.php'); class Control {

public $control; //mtodo que faz o controle do mtodo all() da class cliente public function Controle() { //intancia um o objeto da class cliente $this->control = new Cliente(); //retorna o mtodo all() com os registros em formatos de objetos //como vimos na class cliente. return $this->control->all(); } //mtodo que faz o controle do mtodo intoCliente() da class cliente public function cadCliente($nome) { //recebe um valor na variavel nome se nome vazil retorna uma mensagen de erro if($nome == '') { print "Digite seu nome"; } else { //se o nome no for vazil instancia um objeto da class cliente $this->control = new Cliente(); //chama o mtodo intoCliente enviando o nome(); $this->control->intoCliente($nome); } } } ?>

Dentro da pasta view vamos criar o arquivo, index.php. Arquivo o modelo humano de representao do modelo computacional. Codificao. <?php //inclue a class Control no view require('../control/class.control.cliente.php'); $nome = $_POST["nome"]; //instancia um objeto da class control $cad = new Control(); //chama o mtodo para cadastrar um novo cliente enviando seu nome $cad->cadCliente($nome); ?> <table cellpadding="3" cellspacing="3"> <form id="form1" name="form1" method="post" action="index.php"> <tr> <td width="67" bgcolor="#99CC00">NOME</td> <td width="168" bgcolor="#99FF00"><input type="text" name="nome" id="nome" /></td> </tr> <tr> <td width="67" bgcolor="#FFFFFF">&nbsp;</td> <td width="168" bgcolor="#FFFFFF"><input name="enviar" type="submit"

value="enviar" /></td> </tr> </form> </table> <table cellpadding="3" cellspacing="3"> <tr> <td width="21" bgcolor="#99CC00">ID</td> <td width="214" bgcolor="#99FF00">NOME</td> </tr> <?php //instancia um novo objeto da class Control $c = new Control(); //chama o mtodo controle que retorna todos os registro dos clientes $arr = $c->Controle(); //um lao que percorre todos os registro // count($arr) retorna a quantidade de registros for ($i = 0; $i < count($arr); $i++) { ?> <tr> <td> <?php //imprime o id do cliente dentro da selula da tabela print $arr[$i]->id['id']; ?> </td> <td> <?php //imprime o nome do cliente dentro da selula da tabela print $arr[$i]->nome['nome']; ?> </td> </tr> <?php } ?> </table> Abra seu navegador de internet e digite: http://127.0.0.1/mvc/view/index.php e ver a seguinte imagen:

Anda mungkin juga menyukai