Primeira aplicação e conceitos básicos
Para testar o framework, vamos desenvolver um <ironia>complexo</ironia> sistema de controle de bugs. O sistema terá as seguintes funcionalidades:
- Inclusão de bugs
- Listagem de bugs
- Visualização de bugs
- Alteração de bugs
- Exclusão de bugs
Algo realmente muito complexo, veja você.
Este é o SQL (MySQL) para a criação da tabela que será usada no sistema:
CREATE TABLE bugs (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
active BOOL NOT NULL DEFAULT 1,
created DATETIME NOT NULL,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
No diretório do Cake, copie a pasta app, cole no mesmo diretório e renomeie para "bugtrack" (esse será o nome do sistema). Dentro da pasta "bugtrack" você verá diversos diretórios e alguns poucos arquivos. Essa é a estrutura básica do sistema. No diretório "config" (dentro do "bugtrack"), remova a extensão ".default" do arquivo "database.php.default" e abra-o num editor qualquer para alterar as informações de conexão com o banco de dados. Altere somente os dados na variável "default". Se estiver tudo ok, você pode acessar http://seu-site.com/cake/bugtrack/ e ver a mensagem "Cake is able to connect to the database".
Pronto, agora você tem a estrutura básica de diretórios e já configurou a conexão com o banco de dados. O próximo passo é criar os três elementos básicos da aplicação: um model, um controller e uma view. Praticamente tudo o que você fizer com o Cake terá esses três elementos.
O model é uma classe que abstrai o acesso a uma determinada tabela do banco de dados. No sistema que estamos desenvolvendo, por exemplo, teremos um model chamado "Bug", que nada mais é do que uma representação da tabela "bugs". O nome de um model é sempre o nome da tabela no singular em CamelCase (palavras começam com letra maiúscula e não há espaço entre elas). O arquivo que contém o model Bugs, deve ser salvo com o nome "bug.php" na pasta "bugtrack/models".
O controller é a classe que vai fazer o processamento da requisição, acessar os dados do model e enviar o resultado para a view. O nome de um controller é sempre o nome da tabela mais a palavra "Controller", também em CamelCase. Assim, o controller da nossa tabela "bugs" irá se chamar "BugsController". O arquivo que contém esse controller deve ser salvo na pasta "bugtrack/controllers" com o nome "bugs_controller.php".
A view é um bloco de código HTML (normalmente) onde são impressos os resultados do processamento. Dentro da pasta "views", você deve criar uma pasta para cada tabela do sistema. Nós criaremos uma pasta chamada "bugs". Dentro dessa pasta, ficarão todas as views referentes a tabela "bugs". Como dito anteriormente, nosso sistema de controle de bugs deve permitir a inclusão, listagem, visualização, alteração e exclusão de bugs. Cada uma dessas ações será um método dentro da classe "BugsController" e cada método deve possuir uma view correspondente. O nome de cada view será o nome do método em minúscula com a extensão ".thtml". Exemplos: "cadastrar.thtml", "alterar.thtml", etc.
Além da view, nós temos outro elemento na camada de apresentação: o layout. Como as views são apenas blocos de códigos HTML, elas precisam ser incluídas em um template antes de serem exibidas para o usuário. Esse template deve estar localizado na pasta "/bugtrack/views/layouts/". O CakePHP vem com um layout padrão, mas você pode substituí-lo criando um arquivo com o nome "default.thtml". Na verdade você pode usar o nome que quiser, bastando chamar a função View::setLayout("NOME_DO_LAYOUT") para dizer ao Cake qual arquivo usar. Se você não chamar essa função em nenhum lugar, ele vai procurar pelo "default.thtml" e se não encontrar vai usar o layout padrão.
Bem, agora você pode baixar o código fonte do Bugtrack e descompactá-lo de modo que o diretório principal ("bugtrack") fique no mesmo nível do "app". Modifique o arquivo "bugtrack/database.php", informando os dados para acesso ao banco de dados e caso ainda não tenha criado a tabela "bugs", use o SQL que está no arquivo.
Se eu não esqueci de nada, você pode acessar "http://seu-servidor.com/caminho-do-cake/bugtrack/" e ver o sistema funcionando. Eu ia comentar cada linha de código do Bugtrack, mas acho que é desnecessário. Lendo os códigos do controller, do model (3 linhas :) e das views você entenderá o funcionamento básico do CakePHP. Depois disso é começar a brincar e estudar a documentação oficial do framework.
Qualquer dúvida, correção ou comentário, entre em contato através do email viniciusweb arroba gmail ponto com.