Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
26 de Setembro de 2008
Contedo
I Sobre essa apostila
II Informaes Bsicas
IV CakePHP
18
19
2 Plano de ensino
2.1 Objetivo . . .
2.2 Pblico Alvo .
2.3 Pr-requisitos
2.4 Descrio . .
2.5 Metodologia .
2.6 Cronograma
2.7 Programa . .
2.8 Avaliao . .
2.9 Bibliografia .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Introduo
3.1 Incio . . . . . . . . . . . . . . . .
3.1.1 Extenses do Controlador
3.1.2 Extenses de Viso . . .
3.1.3 Extenses de Modelo . .
3.2 Estrutura CakePHP . . . . . . .
3.2.1 Extenses de Controlador
3.2.2 Extenses de Viso . . .
3.2.3 Extenses de Modelo . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
20
20
20
20
20
21
21
22
.
.
.
.
.
.
.
.
23
23
23
23
23
23
24
24
24
4 MVC
26
4.1 MVC Incio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.1 Descrio do Padro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.2 Frameworks MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
CDTC
5 Estruturas e Convenes
5.1 Estrutura de arquivos do CakePHP . . . . . . . . . .
5.1.1 Estrutura do diretrio App . . . . . . . . . . .
5.2 Convenes no CakePHP . . . . . . . . . . . . . . .
5.2.1 Convenes de arquivos e nome de classes
5.2.2 Convenes de modelo . . . . . . . . . . . .
5.2.3 Convenes de controlador . . . . . . . . . .
5.2.4 Convenes de viso . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Braslia/DF
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
29
30
31
31
31
31
6 Instalao
6.1 Requisitos necessrios para instalao do CakePHP .
6.1.1 Preparando para instalao . . . . . . . . . . .
6.2 Instalao avanada . . . . . . . . . . . . . . . . . . .
6.2.1 Caminhos adicionais para classes . . . . . . .
6.2.2 Apache e mod_rewrite . . . . . . . . . . . . . .
6.2.3 Comece agora! . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
33
33
35
36
36
37
7 Configurao
7.1 Configurao da Base de Dados . . . . . . . . . . .
7.1.1 Exemplo de configurao da base de dados
7.1.2 Chave . . . . . . . . . . . . . . . . . . . . . .
7.2 Configuraes de Rotas (Routes) . . . . . . . . . . .
7.2.1 Alguns exemplos para a rota padro . . . . .
7.3 Inflexes personalizadas . . . . . . . . . . . . . . . .
7.3.1 Variveis do inflections.php . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
38
38
39
39
40
40
41
.
.
.
.
.
.
.
Parte I
CDTC
Braslia/DF
Contedo
O contedo dessa apostila fruto da compilao de diversos materiais livres publicados na internet, disponveis em diversos sites ou originalmente produzido no CDTC em http://www.cdtc.org.br.
O formato original deste material bem como sua atualizao est disponvel dentro da licena
GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seo de
mesmo nome, tendo inclusive uma verso traduzida (no oficial).
A reviso e alterao vem sendo realizada pelo CDTC (suporte@cdtc.org.br), desde outubro
de 2006. Criticas e sugestes construtivas so bem-vindas a qualquer tempo.
Autores
A autoria deste contedo, atividades e avaliaes de responsabilidade de Diego de Aquino
Soares (diego@cdtc.org.br).
O texto original faz parte do projeto Centro de Difuso de Tecnolgia e Conhecimento, que vem
sendo realizado pelo ITI em conjunto com outros parceiros institucionais, atuando em conjunto
com as universidades federais brasileiras que tem produzido e utilizado Software Livre, apoiando
inclusive a comunidade Free Software junto a outras entidades no pas.
Informaes adicionais podem ser obtidas atrves do email ouvidoria@cdtc.org.br, ou da
home page da entidade, atravs da URL http://www.cdtc.org.br.
Garantias
O material contido nesta apostila isento de garantias e o seu uso de inteira responsabilidade do usurio/leitor. Os autores, bem como o ITI e seus parceiros, no se responsabilizam
direta ou indiretamente por qualquer prejuzo oriundo da utilizao do material aqui contido.
Licena
Copyright 2006,Diego de Aquino Soares (diego@cdtc.org.br).
Permission is granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version published by
the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOSTILA. A copy of the license is included in the section entitled GNU Free Documentation
License.
Parte II
Informaes Bsicas
CDTC
Braslia/DF
Sobre o CDTC
Objetivo Geral
O Projeto CDTC visa a promoo e o desenvolvimento de aes que incentivem a disseminao de solues que utilizem padres abertos e no proprietrios de tecnologia, em proveito do
desenvolvimento social, cultural, poltico, tecnolgico e econmico da sociedade brasileira.
Objetivo Especfico
Auxiliar o Governo Federal na implantao do plano nacional de software no-proprietrio e
de cdigo fonte aberto, identificando e mobilizando grupos de formadores de opinio dentre os
servidores pblicos e agentes polticos da Unio Federal, estimulando e incentivando o mercado
nacional a adotar novos modelos de negcio da tecnologia da informao e de novos negcios
de comunicao com base em software no-proprietrio e de cdigo fonte aberto, oferecendo
treinamento especfico para tcnicos, profissionais de suporte e funcionrios pblicos usurios,
criando grupos de funcionrios pblicos que iro treinar outros funcionrios pblicos e atuar como
incentivadores e defensores de produtos de software no proprietrios e cdigo fonte aberto, oferecendo contedo tcnico on-line para servios de suporte, ferramentas para desenvolvimento de
produtos de software no proprietrios e de seu cdigo fonte livre, articulando redes de terceiros
(dentro e fora do governo) fornecedoras de educao, pesquisa, desenvolvimento e teste de produtos de software livre.
Guia do aluno
Neste guia, voc ter reunidas uma srie de informaes importantes para que voc comece
seu curso. So elas:
Licenas para cpia de material disponvel
Os 10 mandamentos do aluno de Educao a Distncia
Como participar dos fruns e da wikipdia
Primeiros passos
muito importante que voc entre em contato com TODAS estas informaes, seguindo o
roteiro acima.
Licena
Copyright 2006, Diego de Aquino Soares (diego@cdtc.org.br).
6
CDTC
Braslia/DF
dada permisso para copiar, distribuir e/ou modificar este documento sob os termos
da Licena de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior
publicada pela Free Software Foundation; com o Captulo Invariante SOBRE ESSA
APOSTILA. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".
CDTC
Braslia/DF
todos participantes. Assim, se o monitor ou algum outro participante tiver uma informao que
interesse ao grupo, favor post-la aqui.
Porm, se o que voc deseja resolver alguma dvida ou discutir algum tpico especfico do
curso, recomendado que voc faa uso do Frum de dvidas gerais que lhe d recursos mais
efetivos para esta prtica.
. O frum de dvidas gerais tem por objetivo disponibilizar um meio fcil, rpido e interativo
para solucionar suas dvidas e trocar experincias. As mensagens postadas nele so enviadas
a todos participantes do curso. Assim, fica muito mais fcil obter respostas, j que todos podem
ajudar.
Se voc receber uma mensagem com algum tpico que saiba responder, no se preocupe com a
formalizao ou a gramtica. Responda! E no se esquea de que antes de abrir um novo tpico
recomendvel ver se a sua pergunta j foi feita por outro participante.
A segunda forma se d pelas Wikis:
Uma wiki uma pgina web que pode ser editada colaborativamente, ou seja, qualquer participante pode inserir, editar, apagar textos. As verses antigas vo sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
timo suporte a processos de aprendizagem colaborativa. A maior wiki na web o site "Wikipdia", uma experincia grandiosa de construo de uma enciclopdia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em portugus pelos links:
Pgina principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaborao com a aprendizagem do grupo!
Primeiros Passos
Para uma melhor aprendizagem recomendvel que voc siga os seguintes passos:
Ler o Plano de Ensino e entender a que seu curso se dispe a ensinar;
Ler a Ambientao do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas bsicas do mesmo;
Entrar nas lies seguindo a seqncia descrita no Plano de Ensino;
Qualquer dvida, reporte ao Frum de Dvidas Gerais.
Perfil do Tutor
Segue-se uma descrio do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal um modelo de excelncia: consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas honesto, imparcial, amvel, positivo, respeitador, aceita as
idias dos estudantes, paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
8
CDTC
Braslia/DF
A classificao por um tutor desta natureza proporciona o melhor feedback possvel, crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem. Este tutor
ou instrutor:
fornece explicaes claras acerca do que ele espera, e do estilo de classificao que ir
utilizar;
gosta que lhe faam perguntas adicionais;
identifica as nossas falhas, mas corrige-as amavelmente, diz um estudante, e explica porque motivo a classificao foi ou no foi atribuda;
tece comentrios completos e construtivos, mas de forma agradvel (em contraste com um
reparo de um estudante: os comentrios deixam-nos com uma sensao de crtica, de
ameaa e de nervosismo)
d uma ajuda complementar para encorajar um estudante em dificuldade;
esclarece pontos que no foram entendidos, ou corretamente aprendidos anteriormente;
ajuda o estudante a alcanar os seus objetivos;
flexvel quando necessrio;
mostra um interesse genuno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
escreve todas as correes de forma legvel e com um nvel de pormenorizao adequado;
acima de tudo, devolve os trabalhos rapidamente;
Parte III
10
CDTC
Braslia/DF
INTRODUO
O propsito desta Licena deixar um manual, livro-texto ou outro documento escrito "livre"no
sentido de liberdade: assegurar a qualquer um a efetiva liberdade de copi-lo ou redistribui-lo,
com ou sem modificaes, comercialmente ou no. Secundariamente, esta Licena mantm
para o autor e editor uma forma de ter crdito por seu trabalho, sem ser considerado responsvel
pelas modificaes feitas por terceiros.
Esta Licena um tipo de "copyleft"("direitos revertidos"), o que significa que derivaes do
documento precisam ser livres no mesmo sentido. Ela complementa a GNU Licena Pblica Geral (GNU GPL), que um copyleft para software livre.
Ns fizemos esta Licena para que seja usada em manuais de software livre, por que software
livre precisa de documentao livre: um programa livre deve ser acompanhado de manuais que
provenham as mesmas liberdades que o software possui. Mas esta Licena no est restrita a
manuais de software; ela pode ser usada para qualquer trabalho em texto, independentemente
do assunto ou se ele publicado como um livro impresso. Ns recomendamos esta Licena principalmente para trabalhos cujo propsito seja de introduo ou referncia.
APLICABILIDADE E DEFINIES
Esta Licena se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelo
detentor dos direitos autorais dizendo que ele pode ser distribudo sob os termos desta Licena.
11
CDTC
Braslia/DF
12
CDTC
Braslia/DF
13
CDTC
Braslia/DF
MODIFICAES
Voc pode copiar e distribuir uma Verso Modificada do Documento sob as condies das sees 2 e 3 acima, desde que voc publique a Verso Modificada estritamente sob esta Licena,
com a Verso Modificada tomando o papel do Documento, de forma a licenciar a distribuio
e modificao da Verso Modificada para quem quer que possua uma cpia da mesma. Alm
disso, voc precisa fazer o seguinte na verso modificada:
A. Usar na Pgina de Ttulo (e nas capas, se houver alguma) um ttulo distinto daquele do Documento, e daqueles de verses anteriores (que deveriam, se houvesse algum, estarem listados
na seo "Histrico do Documento"). Voc pode usar o mesmo ttulo de uma verso anterior se
o editor original daquela verso lhe der permisso;
B. Listar na Pgina de Ttulo, como autores, uma ou mais das pessoas ou entidades responsveis pela autoria das modificaes na Verso Modificada, conjuntamente com pelo menos cinco
dos autores principais do Documento (todos os seus autores principais, se ele tiver menos que
cinco);
C. Colocar na Pgina de Ttulo o nome do editor da Verso Modificada, como o editor;
D. Preservar todas as notas de copyright do Documento;
E. Adicionar uma nota de copyright apropriada para suas prprias modificaes adjacente s
outras notas de copyright;
F. Incluir, imediatamente depois das notas de copyright, uma nota de licena dando ao pblico
o direito de usar a Verso Modificada sob os termos desta Licena, na forma mostrada no tpico
abaixo;
G. Preservar nessa nota de licena as listas completas das Sees Invariantes e os Textos de
Capa requeridos dados na nota de licena do Documento;
H. Incluir uma cpia inalterada desta Licena;
I. Preservar a seo entitulada "Histrico", e seu ttulo, e adicionar mesma um item dizendo
pelo menos o ttulo, ano, novos autores e editor da Verso Modificada como dados na Pgina de
Ttulo. Se no houver uma sesso denominada "Histrico"no Documento, criar uma dizendo o
ttulo, ano, autores, e editor do Documento como dados em sua Pgina de Ttulo, ento adicionar
um item descrevendo a Verso Modificada, tal como descrito na sentena anterior;
J. Preservar o endereo de rede, se algum, dado no Documento para acesso pblico a uma
cpia Transparente do Documento, e da mesma forma, as localizaes de rede dadas no Documento para as verses anteriores em que ele foi baseado. Elas podem ser colocadas na seo
"Histrico". Voc pode omitir uma localizao na rede para um trabalho que tenha sido publicado
pelo menos quatro anos antes do Documento, ou se o editor original da verso a que ela se refira
der sua permisso;
K. Em qualquer seo entitulada "Agradecimentos"ou "Dedicatrias", preservar o ttulo da
14
CDTC
Braslia/DF
seo e preservar a seo em toda substncia e fim de cada um dos agradecimentos de contribuidores e/ou dedicatrias dados;
L. Preservar todas as Sees Invariantes do Documento, inalteradas em seus textos ou em
seus ttulos. Nmeros de seo ou equivalentes no so considerados parte dos ttulos da seo;
M. Apagar qualquer seo entitulada "Endossos". Tal sesso no pode ser includa na Verso
Modificada;
N. No reentitular qualquer seo existente com o ttulo "Endossos"ou com qualquer outro
ttulo dado a uma Seo Invariante.
Se a Verso Modificada incluir novas sees iniciais ou apndices que se qualifiquem como
Sees Secundrias e no contenham nenhum material copiado do Documento, voc pode optar
por designar alguma ou todas aquelas sees como invariantes. Para fazer isso, adicione seus
ttulos lista de Sees Invariantes na nota de licena da Verso Modificada. Esses ttulos precisam ser diferentes de qualquer outro ttulo de seo.
Voc pode adicionar uma seo entitulada "Endossos", desde que ela no contenha qualquer coisa alm de endossos da sua Verso Modificada por vrias pessoas ou entidades - por
exemplo, declaraes de revisores ou de que o texto foi aprovado por uma organizao como a
definio oficial de um padro.
Voc pode adicionar uma passagem de at cinco palavras como um Texto de Capa da Frente
, e uma passagem de at 25 palavras como um Texto de Quarta Capa, ao final da lista de Textos
de Capa na Verso Modificada. Somente uma passagem de Texto da Capa da Frente e uma de
Texto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade.
Se o Documento j incluir um texto de capa para a mesma capa, adicionado previamente por
voc ou por acordo feito com alguma entidade para a qual voc esteja agindo, voc no pode
adicionar um outro; mas voc pode trocar o antigo, com permisso explcita do editor anterior que
adicionou a passagem antiga.
O(s) autor(es) e editor(es) do Documento no do permisso por esta Licena para que seus
nomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquer
Verso Modificada.
COMBINANDO DOCUMENTOS
Voc pode combinar o Documento com outros documentos publicados sob esta Licena, sob
os termos definidos na seo 4 acima para verses modificadas, desde que voc inclua na combinao todas as Sees Invariantes de todos os documentos originais, sem modificaes, e liste
todas elas como Sees Invariantes de seu trabalho combinado em sua nota de licena.
O trabalho combinado precisa conter apenas uma cpia desta Licena, e Sees Invariantes
Idnticas com multiplas ocorrncias podem ser substitudas por apenas uma cpia. Se houver
mltiplas Sees Invariantes com o mesmo nome mas com contedos distintos, faa o ttulo de
15
CDTC
Braslia/DF
cada seo nico adicionando ao final do mesmo, em parnteses, o nome do autor ou editor
origianl daquela seo, se for conhecido, ou um nmero que seja nico. Faa o mesmo ajuste
nos ttulos de seo na lista de Sees Invariantes nota de licena do trabalho combinado.
Na combinao, voc precisa combinar quaisquer sees entituladas "Histrico"dos diversos documentos originais, formando uma seo entitulada "Histrico"; da mesma forma combine
quaisquer sees entituladas "Agradecimentos", ou "Dedicatrias". Voc precisa apagar todas as
sees entituladas como "Endosso".
COLETNEAS DE DOCUMENTOS
Voc pode fazer uma coletnea consitindo do Documento e outros documentos publicados
sob esta Licena, e substituir as cpias individuais desta Licena nos vrios documentos com
uma nica cpia incluida na coletnea, desde que voc siga as regras desta Licena para cpia
exata de cada um dos Documentos em todos os outros aspectos.
Voc pode extrair um nico documento de tal coletnea, e distribu-lo individualmente sob
esta Licena, desde que voc insira uma cpia desta Licena no documento extrado, e siga esta
Licena em todos os outros aspectos relacionados cpia exata daquele documento.
TRADUO
Traduo considerada como um tipo de modificao, ento voc pode distribuir tradues
do Documento sob os termos da seo 4. A substituio de Sees Invariantes por tradues
requer uma permisso especial dos detentores do copyright das mesmas, mas voc pode incluir
tradues de algumas ou de todas as Sees Invariantes em adio s verses orignais dessas
Sees Invariantes. Voc pode incluir uma traduo desta Licena desde que voc tambm inclua a verso original em Ingls desta Licena. No caso de discordncia entre a traduo e a
16
CDTC
Braslia/DF
TRMINO
Voc no pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expressamente especificado sob esta Licena. Qualquer outra tentativa de copiar, modificar, sublicenciar, ou distribuir o Documento nula, e resultar automaticamente no trmino de seus direitos
sob esta Licena. Entretanto, terceiros que tenham recebido cpias, ou direitos de voc sob esta
Licena no tero suas licenas terminadas, tanto quanto esses terceiros permaneam em total
acordo com esta Licena.
17
CDTC
tal como a GNU General Public License, para permitir o seu uso em software livre.
18
Braslia/DF
Parte IV
CakePHP
19
Captulo 1
20
Captulo 2
Plano de ensino
2.1
Objetivo
2.2
Pblico Alvo
2.3
Pr-requisitos
Os usurios devero ser, necessariamente, indicados por empresas pblicas e ter conhecimento bsico acerca da lgica de programao e PHP.
2.4
Descrio
O curso de CakePHP (Instalao e Configurao) ser realizado na modalidade EAD e utilizar a plataforma Moodle como ferramenta de aprendizagem. Ele composto de um mdulo
de aprendizado que ser dado na primeira semana e um mdulo de avaliao que ser dado
na segunda semana. O material didtico estar disponvel on-line de acordo com as datas prestabelecidas no calendrio.
2.5
Metodologia
2.6
Cronograma
Lio 1 - Introduo;
Lio 2 - MVC;
21
CDTC
Braslia/DF
2.7
Programa
2.8
Avaliao
CDTC
Braslia/DF
2.9
Bibliografia
< img alt="Creative Commons License"style="border-width:0"src="http://i.creativecommons.org/l/bync/2.5/br/88x31.png"/> CakePHP by http://cursos.cdtc.org.br is licensed under a Creative
Commons Atribuio-Uso No-Comercial 2.5 Brasil License. Based on a work at www.manual.cakephp.c
23
Captulo 3
Introduo
A lio a seguir deixar voc mais familiarizado com esse Framework.
3.1
Incio
O framework CakePHP utiliza os padres MVC(Modelo-Viso-Controle), porm possui tambm classes e objetos adicionais que tm como objetivo proporcionar maior extensoe e reuso,
para que possam adicionar funcionalidades base MVC de suas aplicaes.
3.2
Estrutura CakePHP
24
CDTC
Braslia/DF
e reuso para adicionar funcionalidades rapidamente base MVC das suas aplicaes. Agora vamos comear a subir um pouco o nvel para analisar os detalhes de como usar estas ferramentas
mais tarde.
CDTC
Braslia/DF
beforeFind()
afterFind()
beforeValidate()
beforeSave()
afterSave()
beforeDelete()
afterDelete()
Os nomes desses mtodos devem ser descritivos o bastante para que voc saiba o que eles
fazem.
Tanto os controladores, ajudantes e modelos tm uma classe pai que voc pode usar para definir modificaes na aplicao. AppController (localizado em /app/app_controller.php), AppHelper (localizado em /app/app_helper.php) e AppModel (localizado em /app/app_model.php) so
bons lugares para colocar mtodos que voc precisa para acessar entre todos os controladores,
ajudantes e modelos.
Embora no sejam classes ou arquivos, as rotas definem regras na requisio feita para o
CakePHP. As definies das rotas definem como o CakePHP deve mapear uma URL para um
mtodo do controlador. O behavior padro assume que a URL /controller/action/var1/var2 mapeia para Controller::action($var1, $var2), mas voc pode usar rotas para personalizar URLs e
como elas devem ser interpretadas pela sua aplicao.
Alguns recursos na sua aplicao podem ser empacotados com mrito. Um plugin um
pacote de modelo, controlador e viso que realiza um objetivo especfico que pode abranger
vrios aplicativos. Um sistema de gesto de usurios ou um blog simplificado podem ser bons
exemplos de plugins para CakePHP.
26
Captulo 4
MVC
Nessa lio, explicaremos do que se trata o MVC.
4.1
MVC Incio
27
CDTC
Braslia/DF
"Renderiza"o model em uma forma especfica para a interao, geralmente uma interface de
usurio.
Controller
Processa e responde a eventos, geralmente aes do usurio, e pode invocar alteraes no
Model.
MVC muito visto tambm em aplicaes para Web, onde a View geralmente a pgina
HTML, e o cdigo que gera os dados dinmicos para dentro do HTML o Controller. E, por fim,
o Model representado pelo contedo de fato, geralmente armazenado em bancos de dados ou
arquivos XML.
Ainda que existam diferentes formas de MVC, o controle de fluxo geralmente funciona como
segue:
1. o usurio interage com a interface de alguma forma (por exemplo, o usurio aperta um
boto);
2. o Controller manipula o evento da interface do usurio atravs de uma rotina pr-escrita;
3. o Controller acessa o Model, possivelmente atualizando-o de uma maneira apropriada,
baseado na interao do usurio (por exemplo, atualizando os dados de cadastro do usurio);
4. algumas implementaes de View utilizam o Model para gerar uma interface apropriada
(por exemplo, mostrando na tela os dados que foram alterados juntamente com uma confirmao).
O View obtm seus prprios dados do Model. O Model no toma conhecimento direto da View;
5. a interface do usurio espera por prximas interaes, que iniciaro o ciclo novamente.
Existe tambm uma forma de interpretao do padro MVC que :
1. View - pginas em formato com resposta HTML (JSP,ASP,PHP);
2. Controller - controle da regra de negcio;
3. Model - representao dos elementos do seu domnio e interao com as ferramentas de
persistncia.
Essa interpretao comum quando o sistema muito pequeno (cadastro de livro para biblioteca) ou a linguagem de programao no oferece um framework amigvel para o trabalho
(Ruby, Coldfusion).
CDTC
Braslia/DF
29
Captulo 5
Estruturas e Convenes
Nessa lio, mostraremos o que deve ser seguido na hora de criar um aplicativo utilizando o
CakePHP.
5.1
Vamos dar uma olhada o que o CakePHP fora da caixa. Voc sabe que o CakePHP utiliza-se
da requisio bsica do MVC, mas no sabe como que os arquivos so organizados.
app
cake
docs
index.php
vendors
Quando voc faz o download do CakePHP, voc ver que possui quatro pastas principais. A
pasta app ser o lugar da sua mgica: aqui sero guardados os arquivos da sua aplicao. A
pasta cake onde a mgica acontece. Faa um compromisso pessoal de no editar os arquivos
desta pasta! Ns no o ajudaremos se modific-la. A pasta docs contm as informaes de
alteraes, licena, etc. Finalmente, a pasta vendors onde voc colocar aplicativos de terceiros
para utilizar na aplicao, por exemplo, jQuery, prototype, FCKEditor, etc.
30
CDTC
Braslia/DF
controllers
Contm os controladores da sua aplicao e seus componentes.
locale
Guarda os arquivos com as strings para internacionalizaao.
models
Contm os modelos, behaviors e datasources da sua aplicao.
plugins
Contm os pacotes de plugins.
tmp
Aqui onde o CakePHP armazena os arquivos temporrios. Os dados atuais so armazenados onde voc tenha configurado o CakePHP, mas esta pasta normalmente usada para guardar
a descrio dos modelos, logs e outras informaes, como as das sesses.
vendors
Qualquer classe ou biblioteca de terceiro deve ser armazenada aqui. Para fazer um acesso
rpido e fcil, use a funo vendors(). Voc pode achar que esta pasta redundante, j que
existe uma pasta com mesmo nome no nvel superior da estrutura. Ns vamos ver diferenas entre estas duas pastas quando discutirmos sobre manipulao de mltiplas aplicaes e sistemas
mais complexos.
view
Arquivos de apresentao devem vir aqui: elementos, pginas de erro, ajudantes, layouts e
arquivos de vises.
webroot
No modo de produo, esta pasta deve servir como a pasta raiz da sua aplicao. Dentro desta pasta so guardados os arquivos pblicos, como estilos CSS, imagens e arquivos de
JavaScript.
5.2
Convenes no CakePHP
31
CDTC
Braslia/DF
manuteno de arquivos de configurao. Convenes tambm fazem com que o sistema fique
uniformemente desenvolvido, permitindo que outros desenvolvedores o ajudem mais facilmente.
Convenes no CakePHP tem sido produzida por anos de experincia em desenvolvimento
web e boas prticas. Enquanto ns sugerimos que use essas convenes enquanto desenvolve
em CakePHP, ns devemos mencionar que muitos desses princpios so facilmente sobrescritos
por alguma coisa que especialmente passado quando trabalha-se com sistemas legados.
CDTC
Braslia/DF
33
Captulo 6
Instalao
Nessa lio ser mostrado o que necessrio para que voc instale o CakePHP e tambm
os passos para a instalao.
6.1
CDTC
Braslia/DF
/var/www/html
/
ake
/app
/
ake
/do
s
/index.php
/vendors
Produo
Para utilizar-se do modelo de produo, voc precisar ter privilgios de acessar o diretrio
pblico do servidor web. Escolhendo o modo de produo significa que todo o domnio age como
um nico pedido CakePHP.
A disposio dos arquivos no modo de produo fica da seguinte maneira:
/pasta_para_o_
ake/
/app
35
CDTC
Braslia/DF
/webroot (este diretrio deve ser seu diretrio pbli
o do servidor web)
/
ake
/do
s
/index.php
/vendors
Se sua aplicao est hospedada no Apache, a diretiva DocumentRoot para seu domnio deve
ficar assim: DocumentRoot /pasta_para_o_cake/app/webroot
6.2
Instalao avanada
Aqui esto algumas situaes que voc escolhe o lugar onde os diretrios do CakePHP vo
ficar no seu sistema. Isto pode ser por causa de uma restrio do sistema ou para compartilhar
as bibliotecas entre diferentes aplicaes. Esta seo descreve como espalhar seus diretrios do
CakePHP no sistema.
Primeiro, note que h trs partes principais da sua aplicao CakePHP:
1. as bibliotecas do ncleo do CakePHP, em /cake;
2. Oo cdigo da sua aplicao, em /app;
3. os arquivos pblicos da sua aplicao, normalmente em /app/webroot.
Cada um desses diretrios pode ser colocado em qualquer lugar do seu sistema, com exceo
do webroot, que precisa estar acessivel pelo servidor web. Voc pode mover a pasta webroot para
fora do diretrio da sua aplicao (app), desde que informe ao Cake onde voc vai coloc-la.
Para configurar sua instalao do Cake, vamos ter que fazer algumas alteraes no arquivo
/app/webroot/index.php. Aqui existem trs constantes que precisaremos editar: ROOT, APP_DIR
e CAKE_CORE_INCLUDE_PATH.
ROOT deve ser configurada para informar o diretrio onde sua aplicao se encontra, ou seja,
onde est a pasta app;
APP_DIR deve ser configurada para informar qual a pasta app;
CAKE_CORE_INCLUDE_PATH deve ser configurada para informar o diretrio onde esto as
bibliotecas do CakePHP (a pasta cake).
Vamos fazer um exemplo para que voc veja como funciona a instalao avanada na prtica.
Imagine que eu quero que a aplicao funcione como segue:
as bibliotecas do CakePHP devero ser colocadas em /usr/lib/cake;
o diretrio pblico da minha aplicao (webroot) deve ser em /var/www/meusite;
o diretrio da aplicao deve ser /home/eu/meusite.
Com estas configuraes preciso editar o meu arquivo webroot/index.php (que no final deve
estar em /var/www/meusite/index.php, neste exemplo) e ver o seguinte:
if (!defined('ROOT')) {
36
CDTC
Braslia/DF
define('ROOT', DS.'home'.DS.'eu');
}
if (!defined('APP_DIR')) {
define ('APP_DIR', 'meusite');
}
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'
ake');
/app/webroot/index.php (parcialmente, comentrios foram removidos)
recomendado que voc use a constante DS no lugar das barras entre os diretrios. Isso
previne que no cause erro quando se use a aplicao em sistemas operacionais diferentes,
tornando seu cdigo mais portvel.
CDTC
Braslia/DF
de ocultamento. Tenha certeza que sua cpia do CakePHP do site ou repositrio oficial do
CakePHP e que foi extrado corretamente;
* tenha certeza que voc est carregando o mod_rewrite corretamente. Voc pode ver algo
como LoadModule rewrite_module libexec/httpd/mod_rewirte.so e AddModule mod_rewrite.c no
seu httpd.conf;
* se voc est instalando no diretrio do usurio (http://exemplo.com.br/ username), voc
ter que modificar o arquivo .htaccess no diretrio da base da instalao do CakePHP. Apenas
adicione a linha "RewriteBase / meuusername/".
38
Captulo 7
Configurao
Nessa lio, ensinaremos como configurar o seu CakePHP, como a Base de Dados, Rotas
(Routes) e Inflexes personalizadas.
7.1
39
CDTC
Braslia/DF
7.1.2 Chave
driver: o nome do driver da base de dados para esta configurao. Exemplos: mysql, postgres, sqlite, pear-drivername, adodb-drivername, mssql, oracle, ou odbc;
persistent: se usar ou no uma conexo persistente com a base de dados;
host: o nome do servidor da base de dados (ou endereo IP);
login: o usurio desta conta;
password: a senha desta conta;
database: o nome da base de dados que esta conexo usar;
prefix(optional): esta string ser adicionada como prefixo no nome de todas tabelas de sua
base de dados. Se suas tabelas no possuem prefixo, deixe esta string vazia;
port(optional): a porta TCP ou socket Unix usado para conectar com o servidor;
encoding: indica qual caractere definido ser usado para enviar indicaes SQL ao servidor;
schema: usado em instalaes de base de dados PostgreSQL para especificar qual schema
usar.
Note que as configuraes de prefixo so para as tabelas, no para os modelos. Por exemplo,
se voc criou um relacionamento entre as tabelas Apple e Flavor, o nome ser prefixo_apples_flavors
(no prefixo_apples_prefixo_flavors), isso se sua opo de prefixo estiver como prefixo_.
A partir deste ponto, voc deve dar uma olhada nas Convenes CakePHP, mostradas neste
manual. A nomenclatura correta para suas tabelas (e o nome de algumas colunas) pode livrar de
algumas implementaes e configuraes desnecessrias.
7.2
Rotas uma funcionalidade que mapeia URLs em aes do controller. Foi adicionado ao
CakePHP para tornal URL amigveies mais configurveis e flexveis. No obrigatrio o uso
do mod_rewrite para usar rotas, mas usando-o far sua barra de endereos muito mais limpa e
arrumada.
Rotas no CakePHP 1.2 foi ampliada e pode ser muito mais poderosa.
Antes de aprender sobre como configurar suas prprias rotas, voc deveria saber que o CakePHP vem configurado com um conjunto de rotas padro. A configurao padro de rotas do
CakePHP deixar as URLs mais bonitas para qualquer aplicao. Voc pode acessar diretamente
uma ao via URL colocando seu nome na requisio. Voc pode tambm passar parmetros
para suas aes no controller usando a prpria URL.
http://exemplo.com/controller/action/param1/param2/param3 URL para a rota padro
40
CDTC
Braslia/DF
A URL /noticias/ler mapeia para a ao ler() do controller Noticias (NoticiasController), e /produtos/verInformacoes mapeia para a ao view_informacoes() do controller Produto (ProdutosController). Se nenhuma ao especificada na URL, a ao index() ser chamada.
A rota padro tambm permite passar parmetros para as aes usando a URL. Uma requisio /noticias/ler/12 seria equivalente a chamar o mtodo ler(12) no controller Noticias (NoticiasController), por exemplo.
Uma novidade no CakePHP 1.2 a possibilidade de usar parmetros nomeados. Voc pode
nomear parmetros e enviar seus valores usando a URL. Uma requisio /noticias/ler/titulo:primeira+noticia/ca
esportes teria como resultado uma chamada a ao ler() do controller Noticias (NoticiasController). Nesta ao, voc encontraria os valores dos parmetros ttulo e categoria dentro de $this>passedArgs[titulo] e $this->passedArgs[categoria] respectivamente.
Router::
onne
t(
'URL',
array('paramName' => 'defaultValue'),
array('paramName' => 'mat
hingRegex')
)
7.3
Inflexes personalizadas
As convenes de nomenclatura do Cake podem ser realmente legais. Voc pode nomear
sua tabela big_boxes, seu model BigBox, seu controller BigBoxesController e tudo isso funciona
41
CDTC
Braslia/DF
em conjunto automaticamente. A maneira que o CakePHP usa para associar todas juntas
atravs da utilizao de inflections (inflexes), que transformam as palavras do singular em plural
e vice-versa.
Existem ocasies (especialmente para nossos amigos que no falam ingls), onde voc pode
rodar o inflector do CakePHP (a classe que pluraliza, singulariza, camelCases e under_scores) e
no funcionar como voc gostaria. Se o CakePHP no reconhecer seu Foci ou Fish, editando o
arquivo de configurao personalizada de inflexes voc poder indicar seus casos especiais. O
arquivo de configurao encontrado em /app/config/inflections.php.
Neste arquivo, voc encontrar seis variveis. Cada uma permite fazer o ajuste fino das
inflections do CakePHP.
42