MVC em PHP Puro – Parte I

A dois anos atrás eu conheci o Zend Framework, fiquei bastante encantada, porem encontrei um pouco de dificuldade, o projeto não deu continuidade e voltei a um projeto em PHP Puro, desde então fiquei pensando em como trabalhar o parte de MVC com o PHP sem a utilização de Framework, assim como os exemplos dados na web eram muito vagos, a maioria apresenta apenas como “Listar” algo vindo do banco de dados em MVC, mas nunca a parte interessante e inicial que é o processo de cadastro.

Meu objetivo neste post, mais especificamente nesta primeira parte, é dar a vocês um caminho, de como criar e organizar um projeto PHP Puro com MVC, mostrarei como organizar os arquivos em pastas, como preencher o arquivo índex.php , .htaccess , e a conexão com o banco de dados. Vamos lá?

Bem, em verdade não é meu objetivo explicar detalhadamente o significado de MVC, aprofundar no assunto não é o objetivo, isto é bem mais tranquilo de ser encontrado no Google, ok?

O básico disso tudo é que View = Interface com o usuário(formulário de cadastro), Controller = faz a intervenção entre o que é requisitado na view e o Model, e o próprio Model que são as partes referentes a banco de dados.

Para desenvolver em PHP MVC decidi por escolher a IDE Eclipse PHP, feito pela Indingo e que serve para utilizar o Zend Framework, com base nisto crie um projeto com o nome que você deseja, dentro dela crie as seguintes pastas: controllers, views e models, e ainda crie os documentos htaccess(txt), e index.php.

Vale lembrar que não sou expert em PHP MVC e ainda estou aprendendo, o que estou trazendo aqui é o básico, existe um mundo a se expandir.
Bom no arquivo htaccess coloque o seguinte código:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
rewriteRule ^.*$ index.php [PT,L]

o arquivo índex.php é o responsável por iniciar nossa aplicação, neste caso preencha o mesmo com o seguinte código:

<?php
 include_once("controllers/Controller.php");
 $controller = new Controller();
 $controller->invoke();
?>
Neste código ele está incluindo a classe Controller e instanciando a classe(objeto), e depois chama a função da classe.  O arquivo de Classe Controller.php é o responsável por chamar a view de login, mas neste post não iremos tratar dos logins, portanto é necessário instanciar no índex.php aquele controller que será sua pagina inicial do sistema, então vamos para a próxima parte que nos interessa.
Na pasta models, crie o arquivo Model.php, ele será responsável pela conexão com o banco, veja o código de exemplo logo abaixo:

<?php
class Model{
       public function conexao() {
$servername = "localhost";
$usuario = "usuario do banco";
$senha = "senha do banco";
$dbase = "nome_banco";
            // Conexao com o SQL Server
$link = mssql_connect($servername, $usuario, $senha);
if(!$link){ 
die("Não foi possível estabelecer conexão com o SQL Server."); 
}
// Verifica a conexao com o SQL Server
$db = mssql_select_db($dbase, $link); // Selecao do Banco de Dados
if(!$db){ 
die("Não foi possível estabelecer conexão com o banco de dados."); 
} ////Verifica a conexao com o Banco de Dados
      }
}
?>
Observe que, no meu caso utilizei um banco de dados SQL Server, por isso a utilização da sintaxe “mssql”, preencha corretamente a função(metodo) conexão com todos os valores das variáveis.

No banco de dados crie a sua tabela de cadastro de cliente, pois esse será o nosso assunto para o post de parte II, criaremos a view(formulário de cadastro), o controller e o model, necessários para o cadastro de cliente no banco.

No meu caso utilizei os seguintes campos como exemplo:

NomeUsuario, Login, senha, CodigoTipoPessoa, Cnpj, Cpf, RazaoSocial, DataCadastro, NomeFantasia, InscricaoEstadual, InscricaoMunicipal, CodigoTipoUsuario, Endereco, Cep, TelefoneComercial, TelefoneResidencial, TelefoneRecados, Celular, Fax, Email


Até a próxima.

Comentários

Postagens mais visitadas