Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

CakePHP Cookbook Documentation, Exercícios de Lógica

Tipologia: Exercícios

2022

Compartilhado em 07/11/2022

Florentino88
Florentino88 🇧🇷

4.7

(31)

223 documentos

1 / 669

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
CakePHP Cookbook Documentation
Release 4.x
Cake Software Foundation
06 jun. 2022
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe CakePHP Cookbook Documentation e outras Exercícios em PDF para Lógica, somente na Docsity!

CakePHP Cookbook Documentation

Release 4.x

Cake Software Foundation

06 jun. 2022

viii

CAPÍTULO 1

CakePHP num piscar de olhos

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.

Convenções Sobre Configuraçã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

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:

  1. As regras de reescrita do servidor encaminham a requisição para webroot/index.php.
  2. Sua aplicação é carregada e vinculada a um HttpServer.
  3. O middleware da sua aplicação é inicializado.
  4. A requisição e a resposta são processados através do PSR-7 Middleware que sua aplicação utiliza. Normalmente isso inclui captura de erros e roteamento.
  5. Se nenhuma resposta for retornada do middleware e a requisição contiver informações de rota, um controller e uma action são acionados.
  6. A action do controller é chamada e o mesmo interage com os Models e Components solicitados.
  7. O controller delega a responsabilidade de criar respostas à view para gerar a saída de dados resultante do Model.
  8. A View utiliza Helpers e Cells para gerar o corpo e o cabeçalho da resposta.
  9. A resposta é enviada de volta através do Middleware.
  10. O HttpServer envia a resposta para o servidor web.

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:

  • #cakephp – Discussão geral
  • #cakephp-docs – Documentação
  • #cakephp-bakery – Bakery
  • #cakephp-fr – Canal francês.

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

  • Comunidade CakePHP francesa^6

Convenções do CakePHP

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:

  • /redApples
  • /RedApples
  • /Red_apples
  • /red_apples

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:

  • A classe de Controller KissesAndHugsController deveria ser encontrada em um arquivo nomeado Kisse- sAndHugsController.php
  • A classe de Component MyHandyComponent deveria ser encontrada em um arquivo nomeado MyHandy- Component.php
  • A classe de Table OptionValuesTable deveria ser encontrada em um arquivo nomeado OptionValuesTable.php.
  • A classe de Entity OptionValue deveria ser encontrada em um arquivo nomeado OptionValue.php.
  • A classe de Behavior EspeciallyFunkableBehavior deveria ser encontrada em um arquivo nomeado Especi- allyFunkableBehavior.php
  • A classe de View SuperSimpleView deveria ser encontrada em um arquivo nomeado SuperSimpleView.php

Leitura Adicional 7

CakePHP Cookbook Documentation, Release 4.x

Estrutura de pastas do CakePHP

Depois de você ter baixado e extraído o CakePHP, aí estão os arquivos e pastas que você deve ver:

  • bin
  • config
  • logs
  • plugins
  • src
  • tests
  • tmp
  • vendor
  • webroot
  • .htaccess
  • composer.json
  • index.php
  • README.md

Você notará alguns diretórios principais:

  • O diretório bin contem os executáveis por console do Cake.
  • O diretório config contem os (poucos) Configuração arquivos de configuração que o CakePHP utiliza. Detalhes de conexão com banco de dados, inicialização, arquivos de configuração do núcleo da aplicação, e relacionados devem ser postos aqui.
  • O diretório logs será normalmente onde seus arquivos de log ficarão, dependendo das suas configurações.
  • O diretório plugins será onde Plugins que sua aplicação utiliza serão armazenados.
  • O diretório src será onde você fará sua mágica: é onde os arquivos da sua aplicação serão colocados.
  • O diretório tests será onde você colocará os casos de teste para sua aplicação.
  • O diretório tmp será onde o CakePHP armazenará dados temporários. O modo como os dados serão armazenados depende da configuração do CakePHP, mas esse diretório é comumente usado para armazenar descrições de modelos e algumas vezes informação de sessão.
  • O diretório vendor será onde o CakePHP e outras dependências da aplicação serão instalados. Faça uma nota pessoal para não editar arquivos deste diretório. Nós não podemos ajudar se você tivé-lo feito.
  • O diretório webroot será a raíz pública de documentos da sua aplicação. Ele contem todos os arquivos que você gostaria que fossem públicos. Certifique-se que os diretórios tmp e logs existem e são passíveis de escrita, senão a performance de sua aplicação será severamente impactada. Em modo de debug, o CakePHP irá alertá-lo se este for o caso.

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