Documentation
Book
API
Videos
Reporting Security Issues
Privacy Policy
Logos & Trademarks
Business Solutions
Swag
Road Trip
Team
Community
Community
Get Involved
Issues (Github)
Bakery
Featured Resources
Training
Meetups
My CakePHP
CakeFest
Newsletter
Linkedin
YouTube
Facebook
Twitter
Help & Support
Forum
Stack Overflow
IRC
Slack
Paid Support
B
CakePHP 4.x Strawberry
Cookbook
A
Language:
pt
en
es
ja
fr
zh
tr
ru
Version:
4.x
4.x Book
3.x Book
2.x Book
1.3 Book
1.2 Book
1.1 Book
Nav
Table of Contents
×
Improve This Doc
Conteúdo
¶
Prefácio
CakePHP num piscar de olhos
Convenções Sobre Configuração
A Camada Model
A Camada View
A Camada Controller
Ciclo de Requisições do CakePHP
Apenas o Começo
Leitura Adicional
Onde Conseguir Ajuda
Convenções do CakePHP
Estrutura de pastas do CakePHP
Guia de Início Rápido
Tutorial - Criando um Bookmarker - Parte 1
Instalação do CakePHP
Verificando nossa instalação
Criando o banco de dados
Configurando o banco de dados
Gerando o código base
Adicionando criptografia de senha
Recuperando bookmarks com uma tag específica
Criando o método localizador
Criando a view
Tutorial - Criando um Bookmarker - Parte 2
Adicionando login
Adicionando logout
Ativando inscrições
Restringindo acesso
Corrigindo a view de listagem e formulários
Melhorando a experiência com as tags
Terminando
4.0 Migration Guide
Tutoriais & Exemplos
Tutorial - Criando um Bookmarker - Parte 1
Instalação do CakePHP
Verificando nossa instalação
Criando o banco de dados
Configurando o banco de dados
Gerando o código base
Adicionando criptografia de senha
Recuperando bookmarks com uma tag específica
Criando o método localizador
Criando a view
Tutorial - Criando um Bookmarker - Parte 2
Adicionando login
Adicionando logout
Ativando inscrições
Restringindo acesso
Corrigindo a view de listagem e formulários
Melhorando a experiência com as tags
Terminando
Tutorial - Criando um Blog - Parte 1
Instalação do CakePHP
Permissões dos diretórios tmp e logs
Criando o banco de dados do Blog
Configurando o banco de dados do Blog
Configurações opcionais
Observação sobre o mod_rewrite
Tutorial - Criando um Blog - Parte 2
Criando o model
Criando o controller
Criando as views
Adicionando artigos
Validando artigos
Editando artigos
Deletando artigos
Rotas
Conclusão
Tutorial - Criando um Blog - Parte 3
Criar uma arvore de Categoria
Migração de Plugin
Modificando as Tabelas
Gerar código esqueleto por categorias
Anexar árvore de compartamento para CategoriesTable
Reordenar categorias com TreeBahavior
Modificando o ArticlesController
Modificando os artigos Templates
Tutorial - Criando um Blog - Autenticação e Autorização
Criando todo o código relacionado ao Usuário
Autenticação (Login e Logout)
Autorização (quem tem permissão para acessar o que)
Contribuindo
Documentação
Traduções
Guia de formatação para documentação
Tickets
Reportando bugs
Reportando problemas de segurança
Código
Configuração inicial
Trabalhando em um patch
Enviando um pull request
Padrões de codificação
Adicionando novos recursos
Indentação
Comprimento da linha
Estruturas de controle
Comparação
Chamadas de função
Definição de método
Encadeamento de métodos
Comentando código
Incluindo arquivos
Tags do PHP
Convenção de nomenclatura
Cuidados usando empty()/isset()
Guia de retrocompatibilidade
Guia de migração
Usando o CakePHP
Trabalhando no CakePHP
Começando
Instalação
Requisitos
Instalando o CakePHP
Mantendo sincronização com as últimas alterações no CakePHP
Permissões
Servidor de Desenvolvimento
Produção
Aquecendo
Reescrita de URL
Apache
nginx
IIS7 (Windows hosts)
Não posso utilizar Reescrita de URL
Configuração
Configurando sua Aplicação
Carregando Arquivos de Configurações Adicionais
Configuração Geral
Configuração do banco de dados
Configuração do Cache
Configuração de manipulação de erro e exceção
Configuração de log
Configuração de e-mail
Configuração de sessão
Configuração de roteamento
Caminhos adicionais de classe
Plugin, Modelos de Visualização e Caminhos Locais
Configuração de Inflexão
Configurar classe
Escrevendo dados de configuração
Leitura de dados de configuração
Verificar se os dados de configuração estão definidos
Excluindo Dados de Configuração
Leitura e exclusão de dados de configuração
Lendo e escreveendo arquivos de configuração
Carregando arquivos de configurações
Criando ou modificando arquivos de configuração
Armazenando Configuração do Tempo de Execução
Restaurando a Configuração do Tempo de Execução
Criando seus próprios mecanismos de configuração
Motores de Configuração Integrados
Arquivos de configuração do PHP
Arquivos de configuração Ini
Arquivos de configuração do Json
Bootstrapping CakePHP
Application::bootstrap()
Variáveis de Ambiente
Desabilitando tabelas genéricas
Roteamento
Tour Rápido
Conectando Rotas
Elementos de Rota
Configurando opções de rota
Passando parâmetros para ação
Usando Rotas Nomeadas
Prefix Routing
Criando links para rotas de prefixo
Roteamento de Plugins
Criando links para rotas de plugins
Roteamento otimizado para SEO
Correspondendo a métodos HTTP específicos
Nomes de host específicos correspondentes
Extensões de arquivo de roteamento
Conectando Middleware com Escopo
Agrupando Middlewares
Criando rotas RESTful
Criando rotas de recursos aninhados
Limitando as rotas criadas
Alterando as ações usadas no controlador
Mapeando rotas de recursos adicionais
Classes de rota personalizadas para rotas de recursos
Inflexão de URL para rotas de recursos
Alterando o elemento de caminho
Passando Argumentos
Gerando URLs
Rotas de redirecionamento
Classes de rota personalizadas
Classe de rota padrão
Método de fallbacks
Criando parâmetros de URL persistentes
Manipulando parâmetros nomeados em URLs
Objetos de Requisição e Resposta
Requisição
Parâmetros de Requsição
Parâmetros em URL
Dados do Corpo da Requisição
Dados PUT, PATCH ou DELETE
Variáveis de Ambiente ($_SERVER e $_ENV)
Dados XML ou JSON
Informações de Caminho
Verificando as Condições da Solicitação
Dados da Sessão
Host e Nome de Domínio
Lendo o método HTTP
Restringindo Qual Método HTTP Uma Ação Aceita
Lendo Cabeçalhos HTTP
Confiando em Cabeçalhos de Proxy
Verificando Aceitar Cabeçalhos
Cookies
Arquivos Enviados
Manipulando URIs
Resposta
Lidando com Tipos de Conteúdo
Enviando Arquivos
Enviando uma String como Arquivo
Definindo Cabeçalhos
Definindo o Corpo
Definindo o Conjunto de Caracteres
Interagindo com o Cache do Navegador
Ajuste Fino de Cache HTTP
Configurando Cookies
Definindo Cabeçalho de Solicitação de Origem Cruzada (CORS)
Erros Comuns com Respostas Imutáveis
Cookie Collections
Criando Cookies
Lendo Cookies
Middleware
Middleware em CakePHP
Usando Middleware
Adicionando Middleware a partir de Plugins
Criando um Middleware
Roteamento de Middleware
Middleware de Cabeçalho de Segurança
Middleware do Cabeçalho da Política de Segurança de Conteúdo
Middleware de Cookie Criptografado
Falsificação de Solicitação entre Sites (CSRF) Middleware
Integração com FormHelper
Solicitações de Proteção CSRF e AJAX
Body Parser Middleware
Controllers (Controladores)
O App Controller
Fluxo de requisições
Métodos (actions) de controllers
Interagindo com views
Definindo variáveis para a view
Renderizando uma view
Redirecionando para outras páginas
Redirecionando para outra action no mesmo Controller
Carregando models adicionais
Paginando um model
Configurando components para carregar
Configurando helpers para carregar
Ciclo de vida de callbacks em uma requisição
Mais sobre controllers
O Pages Controller
Componentes
Views (Visualização)
A App
View
View Templates
Echos
Alternativos
Estruturas de controle alternativas
Variáveis da
View
Definindo Variáveis da View
Estendendo
Views
Usando View Blocks
Exibindo
Blocks
Usando
Blocks
para arquivos de script e css
Layouts
Usando Layouts de Plugins
Elements
Passando variáveis para um
Element
Fazendo Cache de
Elements
Requisitando
Elements
de um plugin
Routing prefix
e
Elements
Fazendo Cache de Seções da sua
View
Eventos da
View
Lista de Eventos
Criando suas próprias Classes View
Mais sobre
Views
View Cells (Células de Visualização)
Temas
Views JSON & XML
Helpers (Facilitadores)
Models (Modelos)
Exemplo rápido
Mais informação
O básico sobre banco de dados
Construtor de Queries
Objetos de tabela
Entidades
Retornando dados e conjuntos de resultados
Validando dados
Salvando Dados
Excluindo Dados
Associações - Conectando tabelas
Behaviors (Comportamentos)
Schema
ORM Cache Shell
Using CakePHP
AuthComponent
Sugestão de Leitura Antes de Continuar
Autenticação
Escolhendo um Tipo de Autenticação
Configurando Manipuladores de Autenticação
Personalizando a Consulta de Localização
Identificando Usuários e Efetuando Login
Redirecionando Usuários após o Login
Criando Sistemas de Autenticação sem Estado
Usando Autenticação Básica
Usando Autenticação Digest
Criando Objetos de Autenticação Personalizados
Usando Objetos de Autenticação Personalizados
Manipulando Solicitações Não Autenticadas
Exibindo Mensagens Flash Relacionadas à Autenticação
Hashing de Senhas
Criando Classes Personalizadas de Hasher de Senha
Alterando Algoritmos de Hash
Logon Manual de Usuários
Acessando o Usuário Conectado
Logout de Usuários
Decidindo Quando Executar a Autenticação
Autorização
Configurando Manipuladores de Autorização
Criando Objetos de Autorização Personalizados
Usando Sem Autorização
Tornando Métodos Públicos
Fazendo Métodos Exigir Autorização
Usando ControllerAuthorize
Opções de configuração
Testando Ações Protegidas por AuthComponent
Caching
Configurando Mecanismos de Cache
Opções do Mecanismo
Opções do FileEngine
Opções RedisEngine
Opções do MemcacheEngine
Configurando Fallbacks de Cache
Remoção de Mecanismos de Cache Configurados
Gravando em um Cache
Escrevendo Várias Chaves de uma só Vez
Armazenamento em Cache de Leitura
Lendo de um Cache
Lendo Várias Chaves de uma só Vez
Exclusão de um Cache
Exclusão de Várias Chaves de uma só Vez
Limpando Dados em Cache
Usando Cache para Armazenar Contadores
Usando o Cache para Armazenar Resultados Comuns de Consulta
Usando Grupos
Ativar ou Desativar Globalmente o Cache
Criando um Mecanismo de Cache
Console e Shells
O Console do CakePHP
Criando uma Shell
Usando Models em suas shells
Tasks de Shell
Carregando Tasks em tempo-real com TaskRegistry
Invocando outras Shells a partir da sua Shell
Recenendo Input de usuários
Criando Arquivos
Saída de dados do Console
Console Output Levels
Estilizando a saída de dados
Desabilitando a colorização
Opções de configuração e Geração de ajuda
Configurando um interpretador de opção com a interface fluida
Adicionando argumentos
Validando argumentos
Adicionando opções
Validando opções
Usando opções boleanas
Adicionando subcomandos
Construir uma ConsoleOptionParser de uma matriz
Recebendo ajuda das Shells
Recebendo ajuda como XML
Roteamento em Shells / CLI
Métodos enganchados
Mais tópicos
Shell Helpers
Console Interativo (REPL)
Executando Shells como Cron Jobs
I18N Shell
Completion Shell
Plugin Shell
Routes Shell
Upgrade Shell
Server Shell
Cache Shell
Depuração
Depuração Básica
Usando a Classe Debugger
Valores de saída
Criando Logs com Pilha de Execução
Gerando Pilhas de Execução
Pegando Trechos de Arquivos
Usando Logging para Depuração
Debug Kit
Implantação
Atualizar config/app.php
Checar a segurança
Definir a raiz do documento
Aprimorar a performance de sua aplicação
Email
Uso Básico
Escolha do Remetente
Configuração
Perfis de Configuração
Configurando Cabeçalhos
Envio de Emails com Templates
Enviando Anexos
Regras para Validação de Endereço mais Flexíveis
Enviando Mensagens Rapidamente
Enviando E-mails de CLI
Criação de Emails Reutilizáveis
Configurando os Transportes
Criação de Transportes Personalizados
Enviar Emails sem Usar o Mailer
Testando Emails
Métodos de Asserções
Erros & Exceções
Configurações de Erro & Exceções
Alterando o tratamento de exceções
Customizando Templates de Erro
Personalizar o layout da página de erro
Customize the ErrorController
Change the ExceptionRenderer
Changing the ErrorController Class
Creating your Own Error Handler
Changing Fatal Error Behavior
Creating your own Application Exceptions
Logging Exceptions
Built in Exceptions for CakePHP
HTTP Exceptions
Using HTTP Exceptions in your Controllers
Other Built In Exceptions
Sistema de Eventos
Exemplo de Uso dos Eventos
Acessando os Gerenciadores de Evento (Event Menagers)
Gerenciador de Eventos Global
Rastreando Eventos
Eventos do Core
Registrando Listeners
Registrando Listeners Anônimos
Interagindo com Listeners Existentes
Estabelecendo Prioridades
Obtendo Dados do Evento como Argumentos da Função
Disparando Eventos
Parando Eventos
Parando o Resultado de um Evento
Removento Callbacks e Ouvintes
Leitura Adicional
Internacionalização e Localização
Configurando Traduções
Arquivos de Idiomas
Extraindo arquivos .pot com I18n Shell
Definir a localidade padrão
Alterando o local em tempo de execução
Usando funções de tradução
Usando variáveis em mensagens de tradução
Plurais
Criar seus próprios Tradutores
Logging
Logging Configuration
Formulários sem Models
Criando o Formulário
Processando Requisição de Dados
Definindo os Valores do Formulário
Pegando os Erros do Formulário
Invalidando Campos Individuais do Formulário no Controller
Criando o HTML com FormHelper
Pagination
Usando Controller::paginate()
Usando o Paginator Diretamente
Paginando Múltiplas Queries
Paginando o Mesmo Modelo Várias Vezes
Controlar Quais Campos Usados para Ordenamento
Limitar o Número Máximo de Linhas por Página
Juntando Associações Adicionais
Solicitações de Página Fora do Intervalo
Paginação na View
Plugins
Instalando um Plugin com Composer
Plugin Map File
Carregando um Plugin
Autoloading Plugin Classes
Configuração do Plugin
Usando Plugins
Criando seus próprios complementos
Criando um plugin usando bake
Rotas para Plugin
Plugin Controllers
Plugin Models
Plugin Views
Substituindo Templates de plugins do na sua aplicação
Plugin Assets
Linking to Assets in Plugins
Components, Helpers and Behaviors
Expanda seu plugin
Publique seu plugin
REST
A Configuração é simples
Aceitando entrada em outros formatos
Roteamento RESTful
Segurança
Segurança
Criptografando e Descriptografando Dados
Fazendo Hash de dados
Gerando dados aleatórios seguros
Componente de Segurança
Como Lidar com Retornos de Chamada Blackhole
Restringir Ações ao SSL
Restringindo a Comunicação entre Controladores
Prevenção de Adulteração de Formulários
Uso
Proteção CSRF
Desabilitando o Componente de Segurança para Ações Específicas
Sessões
Configuração da Sessão
Manipuladores de sessão e configuração incorporados
Manipuladores de Sessão
Sessões de Banco de Dados
Sessões de Cache
Definindo diretivas ini
Criando um manipulador de sessão personalizado
Acessando o Objeto de Sessão
Leitura e gravação de dados da sessão
Destruindo a Sessão
Identificadores de Sessão Rotativos
Mensagens em Flash
Testing
Instalando o PHPUnit
Instalando o PHPUnit com Composer
Usando o arquivo PHAR
Configuração do banco de dados de teste
Verificando a Configuração de Teste
Convenções de Casos de Teste
Criando seu Primeiro Caso de Teste
Executando Testes
Filtrando Casos de Teste
Gerando Cobertura de Código
Combinando Conjuntos de Testes para Plug-ins
Retornos de Chamada do Ciclo de Cida do Caso de Teste
Fixtures
Conexões de Teste
Criando Fixtures
Dados Dinâmicos e Fixtures
Importando Informações da Tabela
Carregando Fixtures em seus Casos de Teste
Classes de Tabela de Teste
Criando um Método de Teste
Métodos Mocks de Modelo
Teste de Integração do Controlador
Configurando a Solicitação
Testando Ações que Exigem Autenticação
Testando Autenticação Stateless e APIs
Testando Ações Protegidas por CsrfComponent ou SecurityComponent
Teste de Integração PSR-7 Middleware
Testando com Cookies Criptografados
Testando Mensagens Flash
Testando um Controlador Com Resposta em JSON
Teste com carregamentos de ficheiros
Desabilitando o Tratamento de Erros de Middlewares nos Testes
Métodos Assertion
Comparando Resultados de Teste com um Arquivo
Teste de Integração de Console
Testando Views
Testando Componentes
Testando Ajudantes
Testando Eventos
Testando Email
Criando Suítes de Teste
Criando Testes para Plugins
Gerando Testes com o Bake
Integração com Jenkins
Criando um Trabalho
Adicionar Configuração do Banco de Dados de Teste
Adicione seus Testes
Executando uma Build
Validação
Classes utilitárias
Classe App
Encontrando Classes
Localizando Caminhos para Namespaces
Localizando Plugins
Localizando Temas
Carregando Arquivos do Fornecedor
Coleções
Exemplo Rápido
Lista de Métodos
Iterando
Filtragem
Agregação
Agrupamento e Contagem
Ordenação
Trabalhando com dados em Árvore
Outros Métodos
Retirando Elementos
Expansão de Coleções
Elementos de Modificação
Tornando Reutilizáveis os Métodos de Coleta
Otimizando Coleções
Tornando as Coleções Rebobináveis
Coleções de Clonagem
Pasta & Arquivo
Uso Básico
API Pastas
API de Arquivos
Hash
Sintaxe do Caminho de Hash
Tipos de Expressão
Tipos de Correspondência de Atributos
Cliente Http
Fazendo Solicitações
Criação de Solicitações Multipart com Arquivos
Criação de Corpos de Solicitação de Várias Partes Manualmente
Enviando o Corpo da Solicitação
Opções de Método para Solicitação
Autenticação
Usando Autenticação Básica
Usando a Autenticação Digest
Autenticação OAuth 1
Autenticação OAuth 2
Autenticação no Proxy
Criação de Clientes com Escopo
Configuração e Gerenciamento de Cookies
Objetos de Resposta
Leitura do Corpo da Resposta
Lendo Corpo de Respostas JSON e XML
Acessando Cabeçalhos da Resposta
Acessando Dados do Cookie
Verificando o Código de Status
Alteração de Adaptadores de Transporte
Inflector
Resumo dos métodos de Inflexão e Suas Saídas
Criando as formas singulares e plurais
Criando as formas CamelCase e nome_sublinhado
Criando formas legíveis para humanos
Criando formatos para nomes de tabelas e classes
Criando nomes de variáveis
Criando strings de URL seguras
Configuração da inflexão
Carregando inflexões personalizadas
Número
Objetos de Registro
Texto
Tempo
Xml
Plugins
Bake
chronos
Debug Kit
Migrations
Elasticsearch
Diversos
Constantes e Funções
Funções globais
Constantes de definição do Core
Constantes de definição de tempo
Apêndices
Guia de Migração para a versão 4.x
4.0 Migration Guide
Informações Gerais
Processo de desenvolvimento no CakePHP
Glossário
Bem-vindo
→
Follow @CakePHP