Webly: Criando Aplicações Em Segundos Com Bake No Cakephp - Webly

Ir para

Regras para postagem

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de PHP

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.


Página 1 de 1

Criando Aplicações Em Segundos Com Bake No Cakephp Crie aplicações PHP complexas em 90 segundos com Bake Avaliar tópico: -----

#1 Membro offline   KeyMaster Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 185
  • Cadastrado: 18-outubro 08
  • Localização:Pedro Osório, RS
  • Interesses:Administração, Webdesign, Programação, Marketing, música. Esqueci de citar Administração

Ícone  Postou 29 março 2009 - 04:19

[Para ler o artigo original, visite meu blog em http://www.eualexand...ake-no-cakephp/ . Não esqueça de comentar. Lembre-se, seu comentário é meu salário :) ]


O Bake do CakePHP é uma das ferramentas mais úteis (e atraentes) que você vai encontrar pelos frameworks PHP afora. Sério. O Bake monta automagicamente toda a estrutura de arquivos para você muito rapidamente, todas as associações entre Models (este pertence àquele, aquele pertence a este, etc) após análise automática das tabelas do banco de dados; todos os Controllers, todos os View, além de criar novos projetos para você.

Se você já usou o CakePHP por algum tempo, vai ver que é extremamente chato ter que criar os arquivos dos Models, ainda mais quando você vai usar 20 tabelas. Imagine criar uma classe para cada uma destas tabelas? Massante. O Bake, que é baseado no sistema de Scaffold do Ruby On Rails, faz tudo isto por nós brilhantemente.

Hoje vamos ver como usar o Bake em ambientes de desenvolvimento Windows, mas também é aplicável no Linux (visto que o Bake é o mesmo, só serão diferentes os diretórios).



Inicialmente, fiz praticamente de tudo no CakePHP, mas deixei o Bake por último, afinal, queria aprender como era toda a estrutura usada nesse framework. Depois que peguei o Bake, fiquei maravilhado com a agilidade que este proporciona ao desenvolvimento. Hoje, jamais vou começar uma nova aplicação sem deixar que o Bake monte toda estrutura e regras de negócio para mim.

IMPORTANTE: Gostaria de esclarecer que o texto é grande, pois busquei explicar cada detalhe, o que não é feito em outros tutoriais pela internet, deixando muitas lacunas no aprendizado e depois muita gente falando mal do CakePHP. Quero que você compreenda com facilidade cada aspecto. Assim, mesmo o texto sendo grande, eu cronometrei todo o processo e levei SOMENTE 1 minuto e 30 segundos para terminá-lo. Você também levará este pouco tempo depois que ler este texto. Isto é para você ver que com o Bake você pode ter seu site funcionando completo em pouco menos de 2 minutos.


Requisitos
Se você ainda não sabe como usar o framework CakePHP, leia este artigo. Usar o Bake requer um conhecimento básico do CakePHP (o que é Controller, Models, Views).

Estou usando o servidor Wamp (acho que todos que usam Windows usam o Wamp). Se você usa outro servidor, basta considerar os diretórios conforme o seu sistema. Vou me basear nos endereços do Wamp.

Você precisa ter um projeto sem alterações do CakePHP. Baixe a última versão do Cake no site www.cakephp.org e descompacte os arquivos dentro do diretório www do Apache. Vamos considerar que a nossa aplicação está na pasta “c:/wamp/www/cake” (se você estiver usando Wamp).


Iniciando
O Bake foi construído para ser usado em um Console de comando (ou terminal, se você preferir). No Windows, é o nosso DOS, ou Prompt de Comando. É a partir do Prompt de Comando que vamos chamar o Bake. Como o Bake é puro PHP, temos que indicar para nosso sistema Windows que o PHP é quem vai interpretar os nossos comandos do Bake. Este primeiro passo é de configuração. Não precisa entender isto se você não quiser, pois o faremos só uma vez.

Dica: Se você usado o PC e não faz idéia do que é um console, DOS, prompt de comando ou terminal, trata-se daquela tela preta onde digitamos comandos, que aparece antes de entrar no sistema operacional toda vez que ligamos o computador, geralmente vista em filmes nonsense ou telas de monitores de farmácia Imagem

Antes de prosseguir, crie o DB “primeirocake” com encoding UTF-8 (utf8_unicode_ci, no phpMyAdmins) com a seguinte tabela:

CREATE TABLE usuarios (
id int auto_increment,
nome varchar(120),
descricao text,
PRIMARY KEY (id),
UNIQUE KEY (id)
);
Configurando o PHP no Path do Windows
Esta parte, se você não quer aprender, simplesmente siga o passo-a-passo. Você fará isto somente uma vez, precisando configurar isto novamente somente quando precisar reinstalar o Windows (provavelmente na próxima semana).

Abra o Painel de Controle (isto fica no Menu Inciar, se não sabe), vá até “Sistema”. Na aba “Avançado”, clique em “Variáveis de ambiente”. Aqui vamos configurar tudo que vai ficar por trás das panos do sistema. Em “Variáveis do Sistema”, procure na lista “Path” e clique em Editar.

No campo “Valor da variável”, você verá alguns diretórios. Aqui temos que especificar onde o PHP está instalado. Para isto, ao final, coloque “;” (ponto-e-vírgula) e indique o diretório onde está sua instalação PHP.

Aqui, como estou usando o Wamp, o endereço é “C:\wamp\bin\php\php5.2.6″. No seu caso, procure a pasta onde o PHP está instalado (provavelmente dentro do diretório do Apache), onde há o arquivo “php.exe”.

Feito isto, estamos prontos para sujar as mãos com o Bake. Feche as janelas abertas de configuração do sistema (vá apertando o botão “Ok” para salvar e sair).


Primeiro contato com o console
Abra o Prompt de comando (Menu Iniciar->Todos os Programas->Acessórios->Prompt de comando). Se você não sabe, esta tela preta que se abriu é o antigo sistema operacional DOS, usado antes de existir o primeiro Windows, o 3.11. Ele foi mantido ao longo das diversas versões do Windows. Ele será muito útil para nós hoje.

Esta é a tela que deve ter aberto aí (é a tela que abre aqui):

Imagem

Como na imagem acima, digite “cd \” para ir para o diretório “C:\”. Cd é o comando usado para entrar e sair dos diretórios do sistema.

Agora vá até o diretório onde está sua instalação do CakePHP, digitando “cd wamp/www/cake/cake/console”. É nesta pasta “console” que se encontra o console do CakePHP. O nome do console é Cake, sendo que este então roda o Bake, entre outros, como o Acl, o i18n, etc. Hoje vamos usar o Bake.

Estando no diretório do console, digite “cake” e você verá a seguinte tela:

Imagem

Na tela acima você pode ver o que foi digitado por mim, e então o início de execução do console (”Welcome to CakePHP v1.2.1.8004 Console”). Há então algumas informações e dicas em como rodar alguma biblioteca do console. É com o comando “Cake” que vamos rodar o Bake.


Iniciando o Bake
Não basta iniciar o Bake, é necessário também indicar onde está nossa aplicação. Digite, dentro do diretório “console” (o qual já estamos), “cake bake -app c:\wamp\www\cake\app“. “Cake” é o console, e “Bake” é a ferramenta que vamos usar. O que está depois de “-app” indica o endereço da pasta da aplicação do CakePHP. Mude este endereço para o endereço da sua aplicação (deve conter a pasta /app). Este endereço pode ser de qualquer aplicação que você queira editar ou usar.

Você deve estar vendo a seguinte tela:

Imagem

No topo, o que digitamos para rodar o console. A seguir, “App : app” indica qual a aplicação que estamos lidando e o endereço dela.

Como não ajustamos ainda as configurações de acesso ao banco de dados, o Bake automaticamente começa um passo-a-passo que nos facilita esta configuração. Vá preenchendo os dados pedidos conforme seu ambiente de desenvolvimento para que nossa aplicação conecte no DB.

Dica: Antes de cada dado pedido, há um valor entre colchetes ( “[" e "]” ). Este é o valor padrão sugerido, para caso você não especifique nada. Na imagem acima, ele está pedindo o nome da conexão (”Name”). Vamos dar um nome, mas caso pressionemos Enter sem especificar nada, o valor será “default”.

A minha configuração ficou assim:

Imagem

Se você olhar a imagem acima, verá que o Bake vai fazer algumas perguntas e então monta o arquivo de configuração automaticamente. O que fizemos manualmente no artigo “Criando nossa primeira página no CakePHP: Parte 1“, o Bake fez para nós agora automaticamente Imagem

Na imagem acima, onde o valor pedido está vazio, significa que simplesmente pressionei Enter e ele assumiu o valor entre colchetes. Por exemplo, em “User” eu uso o valor root, que é justamente o que está entre colchetes e foi sugerido pelo Bake. Não preciso digitar “root” novamente (eu estaria perdendo tempo), basta pressionar Enter e o Bake pega o valor sugerido.

Note que em “Table encoding” usamos utf8 (sem hífen), pois nosso DB foi criado usando este encoding, o utf8_unicode_ci.

No final, o Bake gentilmente pergunta, “Look okay?” (traduzindo, “parece ok?”). Sim, está tudo ok. Então o Bake automagicamente cria o arquivo de configuração do sistema e sai do console.


Configurando os Models automagicamente
Esta parte é incrível. Vamos criar os Models automaticamente com o Bake. No nosso exemplo, estamos usando somente uma tabela.

Rode o Bake novamente, digite “cake bake -app c:\wamp\www\cake\app“. Como o Bake encontrou o arquivo de configuração do DB, você verá a tela inicial do Bake direto. Anteriormente, o Bake foi à tela de configuração do DB automaticamente.

Das opções dadas em “What would you like to Bake? <D/M/V/C/P/Q>”, cada letra representa um dos itens da lista acima no console. Model é representado pela letra M. Pressione M e vamos configurar nosso Model. Você verá que o sistema vai parar um um instante, e isto é normal, pois o que o Bake faz é acessar o DB, verificar as tabelas disponíveis e então sugerir Models automaticamente. Você deve ver na lista o Model sugerido “Usuario” (nomes de Models são no singular, enquanto nomes de tabelas são em plural na convenção do CakePHP).

Selecione o Model que você deseja configurar pressionando seu número, que no caso é 1. Na pergunta sobre configurar validações, pressione Y.

Validações são regras que devem ser seguidas pelos visitantes ao preencherem um formulário. Se você especificar que um dado campo deve ser alfa-numérico, o CakePHP vai verificar se o valor digitado pelo usuário é realmente alfa-numérico, sem que você faça nenhuma verificação nos valores dos formulários. Isto chama-se Validação.

Configure campo por campo acerca da validação. Não configure uma validação para o campo “id”, visto que este é auto-increment e o usuário não vai digitar nada aqui (o sistema cuida disto). No campo “nome” e “descricao” escolha a opção notEmpty (não vazio), que é o número 20 na lista. Configure cada campo.

O Bake perguntará então sobre associações de Models. Associações de Models são regras que você especifica, como “belongsTo” (pertence a), por exemplo. Se você tiver duas tabelas, uma “Usuarios” e outra “Textos”, a tabela “Textos” pertence a “Usuarios”, pois um texto sempre será de um usuário. No CakePHP, especificado que “Textos” belongsTo “Usuarios”, ao carregarmos informações da tabelas “Textos” o CakePHP nos trás junto as informações do usuário que digitou cada texto, automaticamente. Com estas associações, é possível criar um sistema complexo inteiro sem sequer tocar em uma linha SQL.

Como estamos usando somente uma tabela, pressione N, visto que não há associações. Entretanto, se você quer especificar associações de Models, você não terá problemas em testar e aprender sozinho, pois o Bake fará algumas perguntinhas básicas e você, respondendo, terá tudo montado automaticamente.

Pronto, tudo está Ok, então o Bake vai instalar os Models. Não instale o “Cake Test Suite” (vamos deixar isto para outro artigo).


Criando os Controllers automagicamente
Faça a mesma configuração para o Controller. No painel inicial do Bake, pressione C e siga conforme a figura abaixo:

Imagem

Em “Would you like to use scaffolding?”, selecione Y. Scaffolding é uma técnica onde os formulário, aqueles chatos e entediantes formulários HTML, são montado automaticamente o pelo CakePHP. Chega a ser relaxante.

Criado o Controller, vamos para a última parte, o View.


Criando os Views automaticamente
Criar os Views é ainda mais rápido. Veja na figura a seguir:

Imagem

Quando perguntado se você deseja criar alguns Views com Scaffolding, pressione Y (sim). Você verá, ao final, que ele vai criar vários arquivos para você automaticamente com os formulários HTML já prontos.

Deixe Admin Routing de fora.


O Gran Finale do Bake
Agora, vamos para a melhor parte: ver tudo funcionando. Acesse “http://localhost/cake/usuarios” e você já deve ver uma tela com uma listagem de usuários, porém ainda sem itens. Clique em “New Usuario”, entre com as informações e pressione Submit. Lembre-se, como colocamos “notEmpty” na validação dos campos “Nome” e “Descricao” quando configuramos o Model, se você deixar algo em branco vai receber uma mensagem de erro. Isto é muito útil.

Inserido o usuário, você já pode ver a listagem deste, deletar ou editar. Tudo foi montado automaticamente. Não é incrível?

No dia-a-dia, o Bake é usado como fizemos: você monta o banco de dados, configura o CakePHP com o Bake, tem montado toda a estrutura de arquivos, bastando então somente modificar o layout/design da aplicação.

Se você gostou deste artigo, comente. Seu feedback é muito importante. Se você não compreendeu algo, deixe sua dúvida. Outras pessoas podem aprender com suas perguntas.
Lula, Lula, beijomeliga

http://www.eualexandre.com.br
0

#2 Membro offline   r e i n a l d o Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 126
  • Cadastrado: 21-agosto 06
  • Sexo:Male
  • Localização:Guarulhos
  • Interesses:Programação WEB em geral

Postou 06 abril 2009 - 12:03

E ae cara sou o Reinalds...

Muito bom o Bake estou realizando alguns testes com esta ferramenta e é realmente muito rápida e prática... mas como você mesmo disse o melhor é ter uma boa experiencia com o padrão MVC antes de se arriscar a utilizar o bake... Enteder a estrutura que o Cake utiliza é fundamental para não ter problemas com esta ferramenta.

Quanto ao Tutorial ficou muito bom.
Abraço.
Pretinho....

I don't accept questions by MP's
0

#3 Membro offline   KeyMaster Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 185
  • Cadastrado: 18-outubro 08
  • Localização:Pedro Osório, RS
  • Interesses:Administração, Webdesign, Programação, Marketing, música. Esqueci de citar Administração

Postou 06 abril 2009 - 02:47

Fala Reinalds!

No início, por ser iniciante e preguiçoso, achei que o MVC não era um conceito tão bom quanto realmente o é. Hoje eu sei a sua importância. O CakePHP é um canivete suiço, e um dos recursos é seguir o padrão MVC.

E o Bake, cara, é pura mágica. Me mantém informado dos teus avanços. É melhor e mais fácil aprender em conjunto.
Lula, Lula, beijomeliga

http://www.eualexandre.com.br
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)