




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Tipologia: Exercícios
1 / 669
Esta página não é visível na pré-visualização
Não perca as partes importantes!
viii
O CakePHP é desenvolvido para tornar tarefas rotineiras do desenvolvimento web mais simples e fáceis. Ao forne- cer uma caixa de ferramentas completa para você começar, as várias partes do CakePHP funcionam bem juntas ou separadamente.
O objetivo desta apresentação é introduzir os conceitos gerais presentes no CakePHP e lhe dar uma rápida visão geral de como esses conceitos são implementados. Se você está ansioso para começar um projeto, você pode começar com o tutorial , ou mergulhar na documentação.
O CakePHP provê uma estrutura organizacional básica que cobre nomenclaturas de classes, arquivos, banco de dados e outras convenções. Apesar das convenções levarem algum tempo para serem assimiladas, ao seguí-las você evita configurações desnecessárias e cria uma estrutura de aplicação uniforme, que faz trabalhar com vários projetos uma tarefa suave. O capítulo de convenções explica as várias convenções que o CakePHP utiliza.
A camada Model representa a parte da sua aplicação que implementa a lógica de negócios. Ela é responsável por recuperar dados e convertê-los nos conceitos significativos primários na sua aplicação. Isto inclui processar, validar, associar ou qualquer outra tarefa relacionada à manipulação de dados.
No caso de uma rede social, a camada Model deveria cuidar de tarefas como salvar os dados do usuário, salvar as associações entre amigos, salvar e recuperar fotos de usuários, localizar sugestões para novos amigos, etc. Os objetos de modelo podem ser pensados como “Friend”, “User”, “Comment”, ou “Photo”. Se nós quiséssemos carregar alguns dados da nossa tabela users poderíamos fazer:
CakePHP Cookbook Documentation, Release 4.x
A Camada Controller
A camada Controller manipula requisições dos usuários. É responsável por renderizar uma resposta com o auxílio de ambas as camadas, Model e View.
Um controller pode ser visto como um gerente que certifica-se de que todos os recursos necessários para completar uma tarefa sejam delegados aos trabalhadores corretos. Ele aguarda por petições dos clientes, checa suas validades de acordo com autenticação ou regras de autorização, delega requisições ou processamento de dados da camada Model, seleciona o tipo de dados de apresentação que os clientes estão aceitando, e finalmente delega o processo de renderização para a camada View. Um exemplo de controller para registro de usuário seria:
public function add() { $user = $this->Users->newEntity(); if ($this->request->is('post')) { $user = $this->Users->patchEntity($user, $this->request->getData()); if ($this->Users->save($user, ['validate' => 'registration'])) { $this->Flash->success(('Você está registrado.')); } else { $this->Flash->error(('Houve algum problema.')); } } $this->set('user', $user); }
Você pode perceber que nós nunca renderizamos uma view explicitamente. As convenções do CakePHP tomarão o cuidado de selecionar a view correta e renderizá-la com os dados definidos com set().
Ciclo de Requisições do CakePHP
Agora que você está familiarizado com as diferentes camadas no CakePHP, veja na imagem abaixo como o ciclo de requisição funciona:
O ciclo de requisição do CakePHP começa com a solicitação de uma página ou recurso da sua aplicação, seguindo a sequência abaixo:
A Camada Controller 3
CakePHP Cookbook Documentation, Release 4.x
4 Capítulo 1. CakePHP num piscar de olhos
CakePHP Cookbook Documentation, Release 4.x
Os Testes de Caso
Se você sente que a informação provida pela API não é suficiente, verifique os códigos de testes de caso do CakePHP. Eles podem servir como exemplos práticos para funções e e utilização de dados referentes a uma classe.:
tests/TestCase/
O canal de IRC
Canal de IRC na irc.freenode.net:
Se você está travado, nos faça uma visita no canal de IRC do CakePHP. Alguém do time de desenvolvimento^4 normal- mente está conectado, especiamente nos horários diurnos da América do Sul e América do Norte. Nós apreciaríamos ouví-lo se você precisar de ajuda, se quiser encontrar usuários da sua área ou ainda se quiser doar seu novo carro esporte.
Stackoverflow
https://stackoverflow.com/^5
Marque suas questões com a tag cakephp e especifique a versão que você está utilizando para permitir que usuários do stackoverflow achem suas questões.
Onde conseguir ajuda em sua língua
Francês
Nós somos grandes fãs de convenção sobre configuração. Apesar de levar um pouco de tempo para aprender as con- venções do CakePHP, você economiza tempo a longo prazo. Ao seguir as convenções, você ganha funcionalidades instantaneamente e liberta-se do pesadelo de manutenção e rastreamento de arquivos de configuração. Convenções também prezam por uma experiência de desenvolvimento uniforme, permitindo que outros desenvolvedores ajudem mais facilmente. (^4) https://github.com/cakephp?tab=members (^5) https://stackoverflow.com/questions/tagged/cakephp/ (^6) https://cakephp-fr.org
6 Capítulo 1. CakePHP num piscar de olhos
CakePHP Cookbook Documentation, Release 4.x
Convenções para Controllers
Os nomes das classes de Controllers são pluralizados, CamelCased, e terminam em Controller. PeopleController e LatestArticlesController são exemplos de nomes convencionais para controllers.
Métodos públicos nos Controllers são frequentemente referenciados como ‘actions’ acessíveis através de um navegador web. Por exemplo, o /articles/view mapeia para o método view() do ArticlesController sem nenhum esforço. Métodos privados ou protegidos não podem ser acessados pelo roteamento.
Considerações de URL para nomes de Controller
Como você acabou de ver, controllers singulares mapeiam facilmente um caminho simples, todo em minúsculo. Por exemplo, ApplesController (o qual deveria ser definido no arquivo de nome ‘ApplesController.php’) é acessado por http://example.com/apples.
Controllers com múltiplas palavras podem estar em qualquer forma ‘flexionada’ igual ao nome do controller, então:
Todos resolverão para o index do controller RedApples. Porém, a forma correta é que suas URLs sejam minúsculas e separadas por sublinhado, portanto /red_apples/go_pick é a forma correta de acessar a action RedApplesController::go_pick.
Quando você cria links usando this->Html->link(), você pode usar as seguintes convenções para a array de url:
$this->Html->link('link-title', [ 'prefix' => 'MyPrefix' // CamelCased 'plugin' => 'MyPlugin', // CamelCased 'controller' => 'ControllerName', // CamelCased 'action' => 'actionName' // camelBacked ]
Para mais informações sobre o manuseio de URLs e parâmetros do CakePHP, veja Conectando Rotas.
Convenções para nomes de Classes e seus nomes de arquivos
No geral, nomes de arquivos correspondem aos nomes das classes, e seguem os padrões PSR-0 ou PSR-4 para auto- carregamento. A seguir seguem exemplos de nomes de classes e de seus arquivos:
Leitura Adicional 7
CakePHP Cookbook Documentation, Release 4.x
Depois de você ter baixado e extraído o CakePHP, aí estão os arquivos e pastas que você deve ver:
Você notará alguns diretórios principais:
Leitura Adicional 9
CakePHP Cookbook Documentation, Release 4.x
O diretório src
O diretório src do CakePHP é onde você fará a maior parte do desenvolvimento de sua aplicação. Vamos ver mais de perto a estrutura de pastas dentro de src.
Console Contém os comandos e tarefas de console para sua aplicação. Para mais informações veja Console e Shells.
Controller Contém os controllers de sua aplicação e seus componentes.
Locale Armazena arquivos textuais para internacionalização.
Model Contém as tables, entities e behaviors de sua aplicação.
View Classes de apresentação são alocadas aqui: cells, helpers, e arquivos view.
Template Arquivos de apresentação são alocados aqui: elements, páginas de erro, layouts, e templates view.
10 Capítulo 1. CakePHP num piscar de olhos