Aqui vou demonstrar de forma simples como montar a nossa primeira página no CakePHP. Se você baixou este framework e não sabe como fazer as coisas acontecerem, este artigo é ideal para você.
Vou dividir este tutorial em partes. Nesta primeira parte, vamos criar nosso DB, configurar o CakePHP e criar nosso Controller, Model e View. Esta parte 1 é muito básica, somente configurando o ambiente da nossa aplicação, e muito necessário. A parte 2 é onde colocaremos a mão na massa. Boa leitura.
Se você está com dificuldades em escolher um Framework PHP, leia o artigo que expliquei minha decisão aqui e saiba porque preferi o CakePHP.
Requisitos:
Para este tutorial, você precisa:
- ter criado no mínimo um “Hello World” no PHP e ter uma boa noção de HTML.
- saber pelo menos o básico de Programação Orientada a Objetos (POO) no PHP;
- saber criar um banco de dados e tabelas no MySQL. Aqui usarei o phpMyAdmin como cliente de acesso ao DB;
- ter PHP5.
Não esqueça de que o módulo mod_rewrite do Apache deve estar ativado para a leitura dos arquivos .htaccess.
Uma breve introdução
O CakePHP faz uso do padrão MVC, que expliquei aqui (quando eu estava ainda testando o CodeIgniter). Se você não sabe o que MVC significa, é altamente aconselhável você ler o artigo indicado. Com este padrão, a organização da aplicação fica muito mais fácil de ser feita, bem como sua manutenção, proporcionando uma ótima escalabilidade.
Um ponto que quero falar também é que qualquer coisa escala, desde que não seja feita nenhuma gambiarra na programação.
Baixando e preparando o CakePHP
Faça o download do CakePHP no site oficial (usei a versão 1.2.1.8002 stable) e guarde-o no diretório de páginas do seu servidor Web com o nome “cake“. Aqui, uso o Wamp como servidor Web, portanto estes arquivos devem ser salvos no diretório /www dentro da pasta do Wamp.
Criando nosso DB
Primeiro, crie o banco de dados no phpMyAdmin com o nome de “primeirocake” usando o colation latin_general_ci. Copie e cole o seguinte SQL para criar a tabela:
CREATE TABLE usuarios ( id int auto_increment, nome varchar(120), descricao text, PRIMARY KEY (id), UNIQUE KEY (id) );
Configurando o CakePHP
Vamos configurar o 1) acesso ao DB, 2) o charset da nossa página e 3) routes (vou explicar a seguir o que é).
Configurando o acesso ao DB
Dentro da pasta do “cake”, acesse o diretório app/config/. Aqui é onde ficam os arquivos de configuração do framework. Renomeie o arquivo “database.php.default” para “database.php“. O arquivo database.php.default que já estava presente é simplesmente um modelo de arquivo de configuração.
Abra o arquivo database.php há pouco renomeado e você verá, lá embaixo, a variável array $default. É nesta variável que estão as configurações de acesso ao DB. Modifique para que fique assim:
var $default = array( 'driver' => 'mysql', // tipo de conexão, aqui mysql 'persistent' => false, 'host' => 'localhost', // endereço do servidor 'login' => 'root', // seu login de acesso ao DB aqui 'password' => '', // sua senha 'database' => 'primeirocake', // nome do DB 'prefix' => '', );
Configurando o Charset
Vamos ajustar agora o charset da nossa aplicação. No mesmo diretório, edite o arquivo core.php e substitua a linha
Configure::write('App.encoding', 'UTF-8');por
Configure::write('App.encoding', 'ISO-8859-1');Assim, nossa aplicação está pronta para reconhecer acentuação da lingua portuguesa.
Configurando o arquivo routes.php
Quando você acessa http://localhost/cake, o CakePHP redireciona o usuário para uma página padrão. É no arquivo routes.php que podemos configurar qual será esta página. Abra este arquivo e veja a seguinte linha de código responsável por redirecionar o usuário:
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); A função connect() tem 2 parâmetros. O primeiro indica a qual caminho se aplica esta regra. Por exemplo, tendo “/” (barra), significa que ao acessarmos http://localhost/cake/ esta função será chamada. A barra “/” indica “diretório inicial”, ou, “raiz”.
O segundo parâmetro indica o local que o usuário será redirecionado. Aqui há uma array contendo como controller padrão “pages“, como action padrão “display” e como argumento para esta action o valor “home“.
Finalmente, nos deparamos com nosso primeiro Controller. Vou explicá-lo já já.
O que é controller?
Controller é o que controla nossa aplicação. É ele o responsável por chamar nosso View (view é nosso HTML) e também acessar o Model (model é a classe que acessa o banco de dados). É nele que fica a lógica da nossa programação PHP. Cada Controller possui ações, que no CakePHP são chamados de actions. Por exemplo, o Controller responsável pelos usuários poderá ter algumas actions, como “novo”, “listar”, “excluir”. A action com nome de index é executada por padrão quando nenhuma outra é especificada. A seguir, quando criarmos nosso Controller, você verá isto na prática.
Voltando, em nossa função connect(), o segundo parâmetro nos diz que o controller padrão será “pages” e o action “display”. Você pode alterar isto à vontade, mas vamos deixar assim por enquanto.
Pronto, está tudo configurado e pronto para começarmos!
Começando a diversão
Vamos criar nosso Controller, nosso Model e o View.
Criando o Controller
O primeiro passo é criar o nosso Controller “Pages”. Crie o arquivo “pages_controller.php” dentro do diretório app/controllers/. Este é nosso controller. Insira o seguinte código nele:
class PagesController extends AppController { // nosso controlador
var $uses = array('usuario'); // faz uso do Model "usuario", que não criamos ainda
function display(){ // nossa action display
}
}O nome do controller, aqui “Pages”, deve ser sempre no plural e seguido da palavra “Controller”. Em “extends AppController”, estamos indicando que esta classe é um controlador. No nome do arquivo, usamos tudo em minúsculo, usando um _ (sublinhado) para separarmos o nome do controller da palavra controller. Para um controlador Listas, por exemplo, o nome do arquivo será listas_controller.php (sempre com _controller no nome do arquivo) e o nome da classe será ListasController.
Em $uses, estamos indicando que usaremos o Model “usuario”, que é o Model responsável pela tabela “usuarios” no nosso banco de dados. Se não indicarmos a variável $uses, o controller vai tentar encontrar um Model com o mesmo nome dele, neste caso, “Page” (Models são escritos no singular). Se indicarmos, o controlador usará somente os Models especificados.
Criando nosso Model
Crie o arquivo usuario.php (nomes de model devem ser no singular) no diretório app/models/. Este é nosso Model responsável pelo acesso à tabela “usuarios”.
Aqui, há uma convenção a ser cuidada. O nome do arquivo do Model deve ser em minúsculas e no singular. O nome da respectiva tabela no DB deve ser em letras minúsculas, entretanto no plural.
No arquivo criado, copie o seguinte código:
class Usuario extends AppModel{
// o código do Model vai aqui dentro. Vamos deixá-lo vazio por enquanto.
}Pronto! Nosso Model está pronto e você verá que não precisará mais do que isto para inserirmos algo em nosso DB.
Se você tentar rodar http://localhost/cake, verá um erro indicando que nosso View ainda não foi criado. Vamos criá-lo.
Criando nosso View
Crie o arquivo display.ctp (a extensão deve ser .ctp, não .php) no diretório app/views/pages/. O nome do arquivo é “display” porque a action do nosso Controller “Pages” chama-se “Display”. Para cada action você vai criar um View de mesmo nome.
O diretório é pages/ por causa do nome do nosso Controller.
Escreva “Hello World” dentro deste arquivo. Agora acesse http://localhost/cake para ver nosso resultado.
Próxima etapa
Realmente, para quem esta iniciando no CakePHP, foi um longo caminho de configurações. Você deve estar pensando que teve de fazer muita coisa para conseguir um simples “Hello World”. O segredo é que daqui para frente, tudo que você for fazer precisará de quase nada de código. É o que o pessoal do CakePHP chama de Automagic. Na próxima etapa vamos criar nosso formulário sem a chatice do HTML e guardar tudo no DB sem usar sequer uma linha de código SQL!
Resumindo, cada aplicação que você for fazer necessitará a configuração do DB, do charset, do router, então criar o Controller, o Model e o View. A parte chata passou (que não é tão chata assim), e no próximo artigo vamos criar nosso form (sem a chatice do HTML) e desfrutar de toda a facilidade de acesso ao DB que esse Framework nos proporciona.
Você pode baixar o arquivo com o código pronto agora aqui. Se você está com alguma dúvida ou tem alguma sugestão, deixe um comentário. Sua opinião é muito importante.
Vejo você na parte 2.

Entrar
Cadastre-se
Ajuda
Responder

Quote