Sei sulla pagina 1di 43

CakePHP

26 de Setembro de 2008

Contedo
I Sobre essa apostila

II Informaes Bsicas

III GNU Free Documentation License

IV CakePHP

18

1 O que o curso CakePHP

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

Centro de Difuso de Tecnologia e Conhecimento

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

Sobre essa apostila

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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

Centro de Difuso de Tecnologia e Conhecimento

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

Centro de Difuso de Tecnologia e Conhecimento

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".

Os 10 mandamentos do aluno de educao online

1. Acesso a Internet: ter endereo eletrnico, um provedor e um equipamento adequado


pr-requisito para a participao nos cursos a distncia.
2. Habilidade e disposio para operar programas: ter conhecimentos bsicos de Informtica necessrio para poder executar as tarefas.
3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distncia conta muitos pontos, pois ir colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores.
4. Comportamentos compatveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.
5. Organizao pessoal: planejar e organizar tudo fundamental para facilitar a sua reviso
e a sua recuperao de materiais.
6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigaes e
realiz-las em tempo real.
7. Curiosidade e abertura para inovaes: aceitar novas idias e inovar sempre.
8. Flexibilidade e adaptao: requisitos necessrio a mudana tecnolgica, aprendizagens
e descobertas.
9. Objetividade em sua comunicao: comunicar-se de forma clara, breve e transparente
ponto-chave na comunicao pela Internet.
10. Responsabilidade: ser responsvel por seu prprio aprendizado. O ambiente virtual no
controla a sua dedicao, mas reflete os resultados do seu esforo e da sua colaborao.

Como participar dos fruns e Wikipdia


Voc tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
A primeira o uso dos fruns de notcias e de dvidas gerais que se distinguem pelo uso:
O frum de notcias tem por objetivo disponibilizar um meio de acesso rpido a informaes
que sejam pertinentes ao curso (avisos, notcias). As mensagens postadas nele so enviadas a
7

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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

Centro de Difuso de Tecnologia e Conhecimento

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

GNU Free Documentation License

10

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

(Traduzido pelo Joo S. O. Bueno atravs do CIPSGA em 2001)


Esta uma traduo no oficial da Licenaa de Documentao Livre GNU em Portugus
Brasileiro. Ela no publicada pela Free Software Foundation, e no se aplica legalmente a distribuio de textos que usem a GFDL - apenas o texto original em Ingls da GNU FDL faz isso.
Entretanto, ns esperamos que esta traduo ajude falantes de portugus a entenderem melhor
a GFDL.
This is an unofficial translation of the GNU General Documentation License into Brazilian Portuguese. It was not published by the Free Software Foundation, and does not legally state the
distribution terms for software that uses the GFDLonly the original English text of the GFDL does
that. However, we hope that this translation will help Portuguese speakers understand the GFDL
better.
Licena de Documentao Livre GNU Verso 1.1, Maro de 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
permitido a qualquer um copiar e distribuir cpias exatas deste documento de licena, mas
no permitido alter-lo.

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

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do pblico um


licenciado e referida como "voc".
Uma "Verso Modificada"do Documento se refere a qualquer trabalho contendo o documento
ou uma parte dele, quer copiada exatamente, quer com modificaes e/ou traduzida em outra
lngua.
Uma "Seo Secundria" um apndice ou uma seo inicial do Documento que trata exclusivamente da relao dos editores ou dos autores do Documento com o assunto geral do
Documento (ou assuntos relacionados) e no contm nada que poderia ser includo diretamente
nesse assunto geral (Por exemplo, se o Documento em parte um livro texto de matemtica, a
Seo Secundria pode no explicar nada de matemtica).
Essa relao poderia ser uma questo de ligao histrica com o assunto, ou matrias relacionadas, ou de posies legais, comerciais, filosficas, ticas ou polticas relacionadas ao mesmo.
As "Sees Invariantes"so certas Sees Secundrias cujos ttulos so designados, como
sendo de Sees Invariantes, na nota que diz que o Documento publicado sob esta Licena.
Os "Textos de Capa"so certos trechos curtos de texto que so listados, como Textos de Capa
Frontal ou Textos da Quarta Capa, na nota que diz que o texto publicado sob esta Licena.
Uma cpia "Transparente"do Documento significa uma cpia que pode ser lida automaticamente, representada num formato cuja especificao esteja disponvel ao pblico geral, cujos
contedos possam ser vistos e editados diretamente e sem mecanismos especiais com editores
de texto genricos ou (para imagens compostas de pixels) programas de pintura genricos ou
(para desenhos) por algum editor de desenhos grandemente difundido, e que seja passvel de
servir como entrada a formatadores de texto ou para traduo automtica para uma variedade
de formatos que sirvam de entrada para formatadores de texto. Uma cpia feita em um formato
de arquivo outrossim Transparente cuja constituio tenha sido projetada para atrapalhar ou desencorajar modificaes subsequentes pelos leitores no Transparente. Uma cpia que no
"Transparente" chamada de "Opaca".
Exemplos de formatos que podem ser usados para cpias Transparentes incluem ASCII simples sem marcaes, formato de entrada do Texinfo, formato de entrada do LaTex, SGML ou XML
usando uma DTD disponibilizada publicamente, e HTML simples, compatvel com os padres, e
projetado para ser modificado por pessoas. Formatos opacos incluem PostScript, PDF, formatos
proprietrios que podem ser lidos e editados apenas com processadores de texto proprietrios,
SGML ou XML para os quais a DTD e/ou ferramentas de processamento e edio no estejam
disponveis para o pblico, e HTML gerado automaticamente por alguns editores de texto com
finalidade apenas de sada.
A "Pgina do Ttulo"significa, para um livro impresso, a pgina do ttulo propriamente dita,
mais quaisquer pginas subsequentes quantas forem necessrias para conter, de forma legvel,
o material que esta Licena requer que aparea na pgina do ttulo. Para trabalhos que no
tenham uma pgina do ttulo, "Pgina do Ttulo"significa o texto prximo da apario mais proeminente do ttulo do trabalho, precedendo o incio do corpo do texto.

12

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

FAZENDO CPIAS EXATAS


Voc pode copiar e distribuir o Documento em qualquer meio, de forma comercial ou no
comercial, desde que esta Licena, as notas de copyright, e a nota de licena dizendo que esta
Licena se aplica ao documento estejam reproduzidas em todas as cpias, e que voc no acrescente nenhuma outra condio, quaisquer que sejam, s desta Licena.
Voc no pode usar medidas tcnicas para obstruir ou controlar a leitura ou confeco de
cpias subsequentes das cpias que voc fizer ou distribuir. Entretanto, voc pode aceitar compensao em troca de cpias. Se voc distribuir uma quantidade grande o suficiente de cpias,
voc tambm precisa respeitar as condies da seo 3.
Voc tambm pode emprestar cpias, sob as mesmas condies colocadas acima, e tambm
pode exibir cpias publicamente.

FAZENDO CPIAS EM QUANTIDADE


Se voc publicar cpias do Documento em nmero maior que 100, e a nota de licena do
Documento obrigar Textos de Capa, voc precisar incluir as cpias em capas que tragam, clara
e legivelmente, todos esses Textos de Capa: Textos de Capa da Frente na capa da frente, e
Textos da Quarta Capa na capa de trs. Ambas as capas tambm precisam identificar clara e
legivelmente voc como o editor dessas cpias. A capa da frente precisa apresentar o titulo completo com todas as palavras do ttulo igualmente proeminentes e visveis. Voc pode adicionar
outros materiais s capas. Fazer cpias com modificaes limitadas s capas, tanto quanto estas
preservem o ttulo do documento e satisfaam a essas condies, pode ser tratado como cpia
exata em outros aspectos.
Se os textos requeridos em qualquer das capas for muito volumoso para caber de forma
legvel, voc deve colocar os primeiros (tantos quantos couberem de forma razovel) na capa
verdadeira, e continuar os outros nas pginas adjacentes.
Se voc publicar ou distribuir cpias Opacas do Documento em nmero maior que 100, voc
precisa ou incluir uma cpia Transparente que possa ser lida automaticamente com cada cpia
Opaca, ou informar, em ou com, cada cpia Opaca a localizao de uma cpia Transparente
completa do Documento acessvel publicamente em uma rede de computadores, a qual o pblico
usurio de redes tenha acesso a download gratuito e annimo utilizando padres pblicos de
protocolos de rede. Se voc utilizar o segundo mtodo, voc precisar tomar cuidados razoavelmente prudentes, quando iniciar a distribuio de cpias Opacas em quantidade, para assegurar
que esta cpia Transparente vai permanecer acessvel desta forma na localizao especificada
por pelo menos um ano depois da ltima vez em que voc distribuir uma cpia Opaca (diretamente ou atravs de seus agentes ou distribuidores) daquela edio para o pblico.
pedido, mas no obrigatrio, que voc contate os autores do Documento bem antes de
redistribuir qualquer grande nmero de cpias, para lhes dar uma oportunidade de prover voc
com uma verso atualizada do Documento.

13

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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

Centro de Difuso de Tecnologia e Conhecimento

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

Centro de Difuso de Tecnologia e Conhecimento

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.

AGREGAO COM TRABALHOS INDEPENDENTES


Uma compilao do Documento ou derivados dele com outros trabalhos ou documentos separados e independentes, em um volume ou mdia de distribuio, no conta como uma Verso Modificada do Documento, desde que nenhum copyright de compilao seja reclamado pela
compilao. Tal compilao chamada um "agregado", e esta Licena no se aplica aos outros
trabalhos auto-contidos compilados junto com o Documento, s por conta de terem sido assim
compilados, e eles no so trabalhos derivados do Documento.
Se o requerido para o Texto de Capa na seo 3 for aplicvel a essas cpias do Documento,
ento, se o Documento constituir menos de um quarto de todo o agregado, os Textos de Capa
do Documento podem ser colocados em capas adjacentes ao Documento dentro do agregado.
Seno eles precisaro aparecer nas capas de todo o agregado.

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

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

verso original em Ingls desta Licena, a verso original em Ingls prevalecer.

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.

REVISES FUTURAS DESTA LICENA


A Free Software Foundation pode publicar novas verses revisadas da Licena de Documentao Livre GNU de tempos em tempos. Tais novas verses sero similares em espirito verso
presente, mas podem diferir em detalhes ao abordarem novos porblemas e preocupaes. Veja
http://www.gnu.org/copyleft/.
A cada verso da Licena dado um nmero de verso distinto. Se o Documento especificar
que uma verso particular desta Licena "ou qualquer verso posterior"se aplica ao mesmo, voc
tem a opo de seguir os termos e condies daquela verso especfica, ou de qualquer verso
posterior que tenha sido publicada (no como rascunho) pela Free Software Foundation. Se o
Documento no especificar um nmero de Verso desta Licena, voc pode escolher qualquer
verso j publicada (no como rascunho) pela Free Software Foundation.
ADENDO: Como usar esta Licena para seus documentos
Para usar esta Licena num documento que voc escreveu, inclua uma cpia desta Licena
no documento e ponha as seguintes notas de copyright e licenas logo aps a pgina de ttulo:
Copyright (c) ANO SEU NOME.
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 as Sees Invariantes sendo LISTE SEUS TTULOS, com os Textos da
Capa da Frente sendo LISTE, e com os Textos da Quarta-Capa sendo LISTE. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".
Se voc no tiver nenhuma Seo Invariante, escreva "sem Sees Invariantes"ao invs de
dizer quais so invariantes. Se voc no tiver Textos de Capa da Frente, escreva "sem Textos de
Capa da Frente"ao invs de "com os Textos de Capa da Frente sendo LISTE"; o mesmo para os
Textos da Quarta Capa.
Se o seu documento contiver exemplos no triviais de cdigo de programas, ns recomendamos a publicao desses exemplos em paralelo sob a sua escolha de licena de software livre,

17

CDTC

Centro de Difuso de Tecnologia e Conhecimento

tal como a GNU General Public License, para permitir o seu uso em software livre.

18

Braslia/DF

Parte IV

CakePHP

19

Captulo 1

O que o curso CakePHP


CakePHP um framework escrito em PHP que tem como principais objetivos oferecer uma
estrutura que possibilite aos programadores de PHP de todos os nveis desenvolverem aplicaes
robustas rapidamente, sem perder flexibilidade.
O CakePHP baseado no framework Ruby on Rails e utiliza padres de projeto conhecidos, tais como ActiveRecord, Association Data Mapping, Front Controller e MVC (Model-ViewController).
Esse curso ensinar como instalar e configurar corretamente o CakePHP para que voc possa
criar seus aplicativos.

20

Captulo 2

Plano de ensino
2.1

Objetivo

Qualificar tcnicos e programadores no framework CakePHP.

2.2

Pblico Alvo

Tcnicos e Programadores que desejam trabalhar com CakePHP.

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

O curso est dividido da seguinte maneira:

2.6

Cronograma

Lio 1 - Introduo;
Lio 2 - MVC;

21

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

Lio 3 - Estruturas e Convenes;


Lio 4 - Instalao;
Lio 5 - Configurao.
As lies contm o contudo principal. Elas podero ser acessadas quantas vezes forem necessrias, desde que esteja dentro da semana programada. Ao final de uma lio, voc receber
uma nota de acordo com o seu desempenho. Responda com ateno s perguntas de cada lio,
pois elas sero consideradas na sua nota final. Caso sua nota numa determinada lio for menor
do que 6.0, sugerimos que voc faa novamente esta lio.
Ao final do curso ser disponibilizada a avaliao referente ao curso. Tanto as notas das lies
quanto a da avaliao sero consideradas para a nota final. Todos os mdulos ficaro visveis
para que possam ser consultados durante a avaliao final.
Aconselhamos a leitura da "Ambientao do Moodle"para que voc conhea a plataforma de
Ensino a Distncia, evitando dificuldades advindas do "desconhecimento"sobre a mesma.
Os instrutores estaro a sua disposio ao longo de todo curso. Qualquer dvida dever ser
enviada no frum. Diariamente os monitores daro respostas e esclarecimentos.

2.7

Programa

O curso CakePHP (Instalao e Configurao) oferecer o seguinte contedo:


Introduo;
MVC;
Estruturas e Convenes;
Instalao;
Configurao.

2.8

Avaliao

Toda a avaliao ser feita on-line.


Aspectos a serem considerados na avaliao:
Iniciativa e autonomia no processo de aprendizagem e de produo de conhecimento;
Capacidade de pesquisa e abordagem criativa na soluo dos problemas apresentados.
Instrumentos de avaliao:
Participao ativa nas atividades programadas.
Avaliao ao final do curso.
22

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

O participante far vrias avaliaes referente ao contedo do curso. Para a aprovao e


obteno do certificado o participante dever obter nota final maior ou igual a 6.0 de acordo
com a frmula abaixo:
Nota Final = ((ML x 7) + (AF x 3)) / 10 = Mdia aritmtica das lies
AF = Avaliaes

2.9

Bibliografia

Site oficial: http://www.cakephp.org


http://pt.wikipedia.org/wiki/MVC
http://pt.wikipedia.org/wiki/CakePHP

< 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.1.1 Extenses do Controlador


Para ajudar na lgica do controlador temos a classe Componente. Se temos uma mesma
lgica e queremos compartilhar entre os controladores (aplicaes), o componente uma boa
sada. Por exemplo o componente interno EmailComponent cria e envia e-mails em segundo
plano. Para reutilizao do mtodo podemos criar um componente que empacote esta funcionalidade e seja compartilhado entre os controladores.

3.1.2 Extenses de Viso


Helper a classe que ajuda na lgica da viso. Assim como o componente ajuda o controlador, os ajudantes permitem que a apresentao lgica seja acessada e compartilhada entre as
vises.

3.1.3 Extenses de Modelo


J para o modelo, temos a classe Behavior que age da mesma forma como as demais.

3.2

Estrutura CakePHP

CakePHP possui a caracterstica de usar as classes de Controlador, Modelo e Viso, mas


tambm possui classes e objetos adicionais que fazem o desenvolvimento em MVC mais rpido
e agradvel. Componentes, Behaviors e Ajudantes so classes que proporcionam maior extenso

24

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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.

3.2.1 Extenses de Controlador


O Componente (Component) a classe que ajuda na lgica do controlador. Se voc tem a
mesma lgica e quer compartilhar entre controladores (ou aplicaes), o componente uma boa
sada. Por exemplo, o componente interno EmailComponent cria e envia e-mails em segundo
plano. Ao invs de escrever um mtodo em cada controlador que utiliza esta lgica, pode-se criar
um componente que empacote esta funcionalidade e seja compartilhado entre os controladores.
Controladores tambm so equipados com callbacks. Estes callbacks esto disponveis para
que voc possa utilizar, apenas se voc precisar inserir uma lgica entre operaes do ncleo do
CakePHP. Os callbacks disponveis incluem:
beforeFilter(), executado antes de qualquer ao do controlador;
beforeRender(), executado depois da lgica do controlador, mas antes da viso ser renderizada;
afterFilter(), executado depois de todas as lgicas do controlador, incluindo a renderizao
da viso. No h diferena entre afterRender() e afterFilter(), exceto que voc tenha feito uma
chamada manualmente para render() no seu mtodo do controlador e tenha includo alguma
lgica depois dessa chamada.

3.2.2 Extenses de Viso


O Ajudante (Helper) a classe que ajuda na lgica da viso. Assim como o componente ajuda
o controlador, os ajudantes permitem que a apresentao lgica seja acessada e compartilhada
entre as vises. AjaxHelper um dos principais ajudantes. Ele faz requisies AJAX facilmente
de dentro das vises.
A maioria das aplicaes tem partes do cdigo que so usados repetidamente nas vises.
CakePHP facilita o reuso de cdigo na viso com a utilizao de layouts e elementos (elements).
Por padro, toda viso renderizada por um controlador seguindo algum layout. Os elementos so como pequenos trechos de cdigo necessrios que podem ser reutilizados em diversas
vises.

3.2.3 Extenses de Modelo


Assim como as outras extenses, os Behaviors funcionam do mesmo modo, adicionando funcionalidades entre os modelos. Por exemplo, se voc armazenar os dados do usurio em uma estrutura de rvore, voc pode especificar o modelo User como comportamento de rvore e ganhar
funcionalidades para remover, adicionar e alterar ns em sua estrutura de rvore fundamental.
Os modelos tambm so suportados por outra classe chamada DataSource. DataSources
so abstraes que permitem os modelos manipularem diferentes tipos de dados consistentemente. Enquanto a principal fonte de dados numa aplicao CakePHP via banco de dados,
voc pode escrever DataSources adicionais que permitem seu modelo representar um feed RSS,
arquivo CSV, entidades LDAP ou eventos iCal. DataSources permite voc associar registros de
diferentes fontes: ao invs de limitar em joins do SQL, DataSources permitem voc chamar seu
modelo de LDAP que est associada a vrios eventos iCal.
Assim como nos controladores, modelos tm recursos de callback como:
25

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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

Model-view-controller (MVC) um padro de arquitetura de software. Com o aumento da


complexidade das aplicaes desenvolvidas torna-se fundamental a separao entre os dados
(Model) e o layout (View). Desta forma, alteraes feitas no layout no afetam a manipulao de
dados, e estes podero ser reorganizados sem alterar o layout.
O model-view-controller resolve este problema atravs da separao das tarefas de acesso
aos dados e lgica de negcio, lgica de apresentao e de interao com o utilizador, introduzindo um componente entre os dois: o Controller. MVC usado em padres de projeto de
software, mas MVC abrange mais da arquitetura de uma aplicao do que tpico para um padro de projeto.

4.1.1 Descrio do Padro


comum dividir a aplicao em camadas separadas: apresentao (interface), domnio e
acesso a dados. Em MVC a camada de apresentao tambm separada da view e do controller.
Model
A representao "domnio"especfica da informao em que a aplicao opera. Por exemplo,
aluno, professor e turma fazem parte do domnio de um sistema acadmico. comum haver
confuso pensando que Model um outro nome para a camada de domnio. Lgica de domnio
adiciona sentido a dados crus (por exemplo, calcular se hoje aniversrio do usurio, ou calcular
o total de impostos e fretes sobre um determinado carrinho de compras).
Muitas aplicaes usam um mecanismo de armazenamento persistente (como banco de dados) para armazenar dados. MVC no cita especificamente a camada para acesso aos dados,
porque subentende-se que esses mtodos estariam encapsulados pelo Model.
View

27

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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).

4.1.2 Frameworks MVC


ActionScript 3
PureMVC - Framework para ActionScript 3
Java
Apache Struts - Framework MVC
Mentawai - Framework MVC
Tapestry - Framework MVC
VRaptor - Framework controlador MVC
28

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

WebWork - Framework MVC


Neo Framework - Framework MVC
Spring MVC - Framework MVC
JSF - Framework MVC
Perl
Catalyst - Framework MVC escrito em Perl
PHP
CakePHP - Framework MVC
CodeIgniter - Framework MVC
Symfony - Framework MVC
XPT Framework - Framework em PHP no padro MVC
Zend Framework - Framework em PHP no padro MVC
Python
Django - framework escrito em Python que contempla MVC;
TurboGears - framework baseado em vrias outras tecnologias existentes no mundo que
gira em torno da linguagem Python.
Ruby
Rails - conjunto de frameworks, incluindo MVC, para Ruby
Mas veremos somente o Framework MVC para PHP.

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

Estrutura de arquivos do CakePHP

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.

5.1.1 Estrutura do diretrio App


A pasta app do CakePHP onde normalmente voc colocar sua aplicao em desenvolvimento, vamos dar uma olhada mais de perto dentro desta pasta.
config
Contm os arquivos de configurao. Detalhes das conexes ao banco de dados, bootstrapping, arquivos de configurao do ncleo e outros devem ser armazenados aqui.

30

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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

Ns somos grandes fs de convenes nas configuraes. Enquanto isso toma um pouco de


tempo, para aprender as convenes do CakePHP voc ganha tempo em um longo processo:
seguindo as convenes, voc ganha funcionalidades gratuitamente e livra-sede madrugas de

31

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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.

5.2.1 Convenes de arquivos e nome de classes


Em geral, nome dos arquivos so sublinhados, enquanto nome de classes so CamelCased,
ou seja, primeiras letras das palavras em maisculo. A classe KissesAndHugsController pode ser
encontrada no arquivo kisses_and_hugs_controller.php, por exemplo.
Porm, o nome da class e seu tipo no so necessariamente encontrados no nome do arquivo.
A classe EmailComponent encontrada no arquivo chamado email.php e a classe HtmlHelper
encontrada no arquivo html.php.

5.2.2 Convenes de modelo


Nome das classes de modelo devem ser no singular e CamelCased. Person, BigPerson e
ReallyBigPerson so todos os exemplos de nomes convencionados para modelos.
Os nomes das tabelas correspondem ao nome do modelo do CakePHP, mas no plural e sublinhados. As tabelas para os modelos mencioados anteriormente devem ser people, big_people
e really_big_people, respectivamente.
Tabelas associadas, usadas em relaes hasAndBelongsToMany entre modelos, devem ser
nomeadas depois dos modelos das tabelas que a compem, em ordem alfabtica (apples_zebras
em vez de zebras_apples). Se sua aplicao possui esse tipo de relao entre os modelos Tag e
Post, o nome deve ser posts_tags.

5.2.3 Convenes de controlador


O nome das classes de controladores so no plural, CamelCased e no final Controller. PeopleController, BigPeopleController e ReallyBigPeopleController so todos os exemplos convencionais para nome de controladores.
A primeira funo que voc deve escrever em um controlador deve ser o mtodo index().
Quando algum requisita um controlador sem ao, o behavior padro renderizar o mtodo
index() do controlador. Por exemplo, a requisio para http://www.exemplo.com.br/apples/ mapeia
para a chamada da funo index() do ApplesController, assim como http://www.exemplo.com.br/apples/view
mapeia para a chamada da funo view() no ApplesController.
Voc tambm pode alterar a visibilidade das funes do controlador em CakePHP colocando
sublinhados na frente do nome das funes. Se a funo do controlador estiver com sublinhado
na frente, a funo no ser disponibilizada para acesso da web atravs do dispatcher, mas
estar disponvel para uso interno.

5.2.4 Convenes de viso


Os arquivos de template das vises so chamados depois das funes que os controladores
mostram, na forma com sublinhados. A funo getReady() da classe PeopleController ir procurar
pelo template da viso em /app/views/people/get_ready.ctp.
32

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

O modelo bsico /app/views/controller/underscored_function_name.ctp.


Nomeando os pedaos da aplicao e usando as convenes do CakePHP, voc ganha funcionalidades sem luta e proteo configurao. Aqui o exemplo final que vincula as associaes:
abela no banco de dados: people
Classe do Modelo: Person, encontrada em /app/models/person.php
Classe do Controlador: PeopleController, encontrado em /app/controllers/people_controller.php
Template da Viso: encontrado em /app/views/people/index.ctp
Usando estas convenes, CakePHP sabe que a requisio para http://www.exemplo.com.br/people/
mapeia para a chamada da funo index() do PeopleController, onde o modelo Person automaticamente disponibilizado (e automaticamente associado a tabela people no banco de dados), e
renderiza isso para o arquivo. Nenhuma destas relaes foram configuradas por qualquer meio
que no seja atravs da criao de classes e arquivos que voc precise criar em algum lugar.
Obs.: Os sites mostrados e os que sero mostrados no direcionam para uma pgina real,
so somente exemplos.

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

Requisitos necessrios para instalao do CakePHP

Servidor HTTP. Apache com mod_rewrite preferido, mas no obrigatrio.


PHP 4.3.2 ou superior. Sim! CakePHP funciona com PHP 4 e PHP 5.
Tecnicamente um banco de dados no obrigatrio, mas imaginamos que a maioria das
aplicaes iro utilizar um. CakePHP suporta uma variedade de banco de dados:
MySQL (4 ou superior);
PostgreSQL;
Firebird DB2;
Microsoft SQL Server;
Oracle;
SQLite;
ODBC;
ADOdb.

6.1.1 Preparando para instalao


Baixando o CakePHP
H duas maneiras de pegar uma cpia do CakePHP, primeiro: voc pode baixar o arquivo
(zip/tar.gz/tar.bz2) ou voc pode baixar o cdigo do repositrio SVN.
Para pegar a cpia estvel, visite o site http://www.cakephp.org. L haver um link chamado
"Download Now!"para baixar. Os arquivos do CakePHP tambm so armazenados no CakeForge
e voc pode visitar a pgina do projeto no site http://cakeforge.org/projects/cakephp
Se voc quer os arquivos mais atuais, verifique no site http://cakephp.org/downloads/index/nightly
e ver a ltima verso estvel, porm nem sempre a ltima release. Nestas verses incluem correes entre releases. Ou seja, so verses intermedirias entre releases, mas que so estveis.
34

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Braslia/DF

Para pegar os arquivos direto do repositrio SVN, conecte-se em https://svn.cakephp.org/repo/branches/1.


Permisses
O CakePHP usa o diretrio /app/tmp para diversas operaes. Descritivos dos modelos, fazer
cache de vises e informaes das sesses so alguns exemplos.
Assim, tenha certeza que o diretrio /app/tmp na instalao do seu cake permite escrita pelo
usurio do servidor de web.
Instalar o CakePHP pode ser feito simplesmente descompactando o contedo no seu servidor
web ou de forma mais complexa e flexvel, do jeito que voc preferir. Esta seo vai falar de trs
maneiras de instalar o CakePHP: desenvolvimento, produo e avanada.
Desenvolvimento: fcil para comear, URL dos seus aplicativos incluem o diretrio de instalao do CakePHP e menos seguro;
Produo: requer maior habilidade para configurar o servidor web, porm mais seguro e com
URLs mais amigveis;
Avanada: com algumas configuraes, permite que voc coloque os diretrios do CakePHP
em diferentes locais do sistema, possibilitando compartilhar o ncleo do CakePHP entre diversas
aplicaes.
Desenvolvimento
Apenas coloque seus arquivos do CakePHP no diretrio pblico do seu servidor web (normalmente htdocs, www, public_html). Por exemplo, assumindo que o diretrio pblico do seu servidor
web seja /var/www/html, os arquivos devem ficar desta maneira:

/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

Centro de Difuso de Tecnologia e Conhecimento

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

Centro de Difuso de Tecnologia e Conhecimento

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.

6.2.1 Caminhos adicionais para classes


Em algumas ocasies interessante compartilhar as classes do MVC entre as aplicaes no
mesmo sistema. Se voc quer um mesmo controlador para mesma aplicao, voc pode usar o
arquivo bootstrap.php do CakePHP para adicionar estas classes adicionais.
No bootstrap.php, defina algumas variveis com nomes especiais para fazer com que o CakePHP olhe nestes diretrios a procura da sua classe:
$viewPaths = array();
$controllerPaths = array();
$modelPaths = array();
$helperPaths = array();
$componentPaths = array();
$behaviorPaths = array();
Cada um dessas variveis especiais pode ser um conjunto na array com o diretrio absoluto
onde esto as classes que voc desejar. Tenha certeza que cada diretrio especificado inclua as
barras com DS.

6.2.2 Apache e mod_rewrite


Enquanto o CakePHP construdo para trabalhar com o mod_rewrite e vimos que muitos
usurios apanham para conseguir fazer isto funcionar nos seus sistemas, ns lhe daremos algumas dicas que voc pode tentar para rodar corretamente:
* tenha certeza que o override est habilitado no .htaccess. Em seu httpd.conf, voc deve olhar
na seo que define seu Directory no servidor. Tenha certeza que AllowOverride est configurado
como All para o diretrio correto de DocumentRoot;
* tenha certeza que voc est editando o httpd.conf do sistema antes da configurao do
usurio ou do site em especfico;
* tenha certeza que o arquivo .htacess est na pasta do CakePHP. Em alguns sistemas operacionais ele pode ficar oculto na hora de mover devido a interpretarem o . como sinnimo
37

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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/".

6.2.3 Comece agora!


Tudo bem, vamos ver o CakePHP em ao. Dependendo de qual opo de instalao voc utilizou, acesse no seu browser o link http://exemplo.com.br ou http://exemplo.com.br/cake_instalado/.
Neste ponto, voc ver a pgina padro do CakePHP e a mensagem do estado da configurao
do seu banco de dados.
Parabns! Voc j pode criar sua primeira aplicao CakePHP.

38

Captulo 7

Configurao
Nessa lio, ensinaremos como configurar o seu CakePHP, como a Base de Dados, Rotas
(Routes) e Inflexes personalizadas.

7.1

Configurao da Base de Dados

O CakePHP espera que os detalhes de configurao da base de dados estejam no arquivo


app/config/database.php. Um exemplo de configurao da base de dados pode ser encontrado
em app/config/database.php.default.
A configurao final deve ser parecida com o exemplo abaixo.

var \$default = array('driver' => 'mysql',


'persistent' => false,
'host' => 'lo alhost',
'login' => 'usuarioDB',
'password' => 'senhaDB',
'database' => 'basededados',
'prefix' => '');

7.1.1 Exemplo de configurao da base de dados


A conexo $default usada a menos que outra configurao seja especificada pela propriedade $useDbConfig em um modelo. Por exemplo, se minha aplicao tiver uma base de dados
adicional do legacy alm do padro, eu poderia us-la em meus modelos criando uma nova conexo da base de dados de $legacy similar a configurao $default, e ajustando a var $useDbConfig
= legacy; nos modelos apropriados.
Escreva corretamente, na configurao, para atender melhor as suas necessidades.

39

CDTC

Centro de Difuso de Tecnologia e Conhecimento

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

Configuraes de Rotas (Routes)

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

Centro de Difuso de Tecnologia e Conhecimento

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.

7.2.1 Alguns exemplos para a rota padro


URL: /monkeys/jump Mapeado para: MonkeysController->jump();
URL: /products Mapeado para: ProductsController->index();
URL: /tasks/view/45 Mapeado para: TasksController->view(45);
URL: /donations/view/recent/2001 Mapeado para: DonationsController->view(recent,
2001);
URL: /contents/view/chapter:models/section:associations
Mapeado para: ContentsController->view();
$this->passedArgs[chapter] = models; $this->passedArgs[section] = associations;
Mapeando URL para aes do controller usando rotas padro.
Definindo suas prprias rotas permite a definio de como sua aplicao responder a uma
dada URL. Defina suas prprias rotas no arquivo /app/config/routes.php usando o mtodo Router::connect().
O mtodo connect() recebe trs parmetros: a URL que voc deseja casar, o valor padro
para os elementos de rota, e regras de expresses regulares para ajudar a encontrar elementos
na URL.
O formato bsico para uma definio de rota :

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

Centro de Difuso de Tecnologia e Conhecimento

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.

7.3.1 Variveis do inflections.php


$pluralRules - este array contm regras de expresses regulares para pluralizar casos especiais. A chave do array so os patterns e o valor so as substituies;
$uninflectedPlural - um array que contm palavras que no precisam ser alteradas quando
passadas para o plural (lpis, etc.);
$irregularPlural - um array que contm palavras e seus plurais. A chave do array contm a
forma no singular e o valor a forma no plural. Este array deve ser usado para guardar palavras
que no seguem as definies em $pluralRules;
$singularRules - similar a $pluralRules, contm as regras para singularizar as palavras;
$uninflectedSingular - similar a $uninflectedPlural, contm as palavras que no contm
forma no singular. Por padro, este array tem o mesmo valor de $uninflectedPlural;
$irregularSingular - similar a $irregularPlural, contm as palavras que possuem apenas a
forma singular.
Obs.: foi criado um modelo da inflections.php para o idioma portugus.
Com isso, encerramos o curso de CakePHP (Instalao e Configurao). Esperamos que
tenha aproveitado.

42

Potrebbero piacerti anche