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

Php Cake Orientado a objetos, Provas de Programação Javascript

Muito bom para aprender com eles

Tipologia: Provas

2020

Compartilhado em 25/04/2020

orlando-freire
orlando-freire 🇦🇴

1 documento

1 / 557

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
mar. 10, 2020
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 Php Cake Orientado a objetos e outras Provas em PDF para Programação Javascript, somente na Docsity!

CakePHP Cookbook Documentation

Release 4.x

Cake Software Foundation

mar. 10, 2020

  • 1 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
  • 2 Guia de Início Rápido
    • Tutorial - Criando um Bookmarker - Parte
    • Tutorial - Criando um Bookmarker - Parte
  • 3 4.0 Migration Guide
  • 4 Tutoriais & Exemplos
    • Tutorial - Criando um Bookmarker - Parte
    • Tutorial - Criando um Bookmarker - Parte
    • Tutorial - Criando um Blog - Parte
    • Tutorial - Criando um Blog - Parte
    • Tutorial - Criando um Blog - Parte
    • Tutorial - Criando um Blog - Autenticação e Autorização
  • 5 Contribuindo
    • Documentação
    • Tickets
    • Código
    • Padrões de codificação
    • Guia de retrocompatibilidade
  • 6 Instalação
    • Requisitos
    • Instalando o CakePHP
    • Permissões
    • Servidor de Desenvolvimento
    • Produção
    • Aquecendo
    • Reescrita de URL
  • 7 Configuração
    • Configurando sua Aplicação
    • Caminhos adicionais de classe
    • Configuração de Inflexão
    • Configurar classe
    • Lendo e escreveendo arquivos de configuração
    • Criando seus próprios mecanismos de configuração
    • Motores de Configuração Integrados
    • Bootstrapping CakePHP
    • Variáveis de Ambiente
    • Desabilitando tabelas genéricas
  • 8 Roteamento
    • Tour Rápido
    • Conectando Rotas
    • Criando rotas RESTful
    • Passando Argumentos
    • Gerando URLs
    • Rotas de redirecionamento
    • Classes de rota personalizadas
    • Criando parâmetros de URL persistentes
    • Manipulando parâmetros nomeados em URLs
  • 9 Objetos de Requisição e Resposta
    • Requisição
    • Resposta
    • Configurando Cookies
    • Definindo Cabeçalho de Solicitação de Origem Cruzada (CORS)
    • Erros Comuns com Respostas Imutáveis
    • Cookie Collections
  • 10 Controllers (Controladores)
    • O App Controller
    • Fluxo de requisições
    • Métodos (actions) de controllers
    • Redirecionando para outras páginas
    • 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
  • 11 Views (Visualização)
    • A App View
    • View Templates
    • Usando View Blocks
    • Layouts
    • Elements
    • Eventos da View
    • Criando suas próprias Classes View
    • Mais sobre Views
  • 12 Models (Modelos)
    • Exemplo rápido
    • Mais informação
  • 13 Bake Console
  • 14 Caching
    • Configuring Cache Class
  • 15 Console e Shells
    • O Console do CakePHP
    • Criando uma Shell
    • Tasks de Shell
    • Invocando outras Shells a partir da sua Shell
    • Recenendo Input de usuários
    • Criando Arquivos
    • Saída de dados do Console
    • Opções de configuração e Geração de ajuda
    • Roteamento em Shells / CLI
    • Métodos enganchados
    • Mais tópicos
  • 16 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
  • 17 Implantação
    • Atualizar config/app.php
    • Checar a segurança
    • Definir a raiz do documento
    • Aprimorar a performance de sua aplicação
  • 18 Email
    • Uso Básico
    • Configuração
    • Definindo Cabeçalho
    • Enviando E-mail com Templates
    • Envio de Anexos
    • Usando Transportes
  • 19 Erros & Exceções
    • Configurações de Erro & Exceções
    • Alterando o tratamento de exceções
    • Customizando Templates de Erro
    • Customize the ErrorController
    • Change the ExceptionRenderer
    • Creating your Own Error Handler
    • Creating your own Application Exceptions
    • Built in Exceptions for CakePHP
  • 20 Sistema de Eventos
    • Exemplo de Uso dos Eventos
    • Acessando os Gerenciadores de Evento (Event Menagers)
    • Eventos do Core
    • Registrando Listeners
    • Disparando Eventos
    • Leitura Adicional
  • 21 Internacionalização e Localização
    • Configurando Traduções
    • Usando funções de tradução
    • Criar seus próprios Tradutores
  • 22 Logging
    • Logging Configuration
  • 23 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
  • 24 Plugins
    • Instalando um Plugin com Composer
    • Carregando um Plugin
    • Configuração do Plugin
    • Usando Plugins
    • Criando seus próprios complementos
    • Rotas para Plugin
    • Plugin Controllers
    • Plugin Models
    • Plugin Views
    • Plugin Assets
    • Components, Helpers and Behaviors
    • Expanda seu plugin
    • Publique seu plugin
  • 25 REST
    • A Configuração é simples
    • Aceitando entrada em outros formatos
    • Roteamento RESTful
  • 26 Segurança
    • Segurança
    • Cross Site Request Forgery
  • 27 Sessões
    • Configuração da Sessão
    • Manipuladores de sessão e configuração incorporados
    • 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
  • 28 Testing
    • Instalando o PHPUnit
    • 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
    • Retornos de Chamada do Ciclo de Cida do Caso de Teste
    • Fixtures
    • Classes de Tabela de Teste
    • Teste de Integração do Controlador
    • 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
  • 29 Validação
  • 30 App Class
  • 31 Collections (Coleções)
    • Exemplo Rápido
    • Lista de Métodos
    • Iterando
    • Filtragem
    • Agregação
    • Classificação
    • Trabalhando com Árvore de Dados
    • Outros Métodos
  • 32 Arquivos & Pastas
  • 33 Hash
  • 34 Http Client
  • 35 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
  • 36 Número
  • 37 Objetos de Registro
  • 38 Texto
  • 39 Tempo
  • 40 Xml
  • 41 Constantes e Funções
    • Funções globais
    • Constantes de definição do Core
    • Constantes de definição de tempo
  • 42 Debug Kit
  • 43 Migrations
  • 44 Apêndices
    • Guia de Migração para a versão 4.x
    • Informações Gerais
  • PHP Namespace Index
  • Índice

CakePHP Cookbook Documentation, Release 4.x

(continuação da página anterior)

// Prior to 3.6 use TableRegistry::get('Users') $users = TableRegistry::getTableLocator()->get('Users'); $query = $users->find(); foreach ($query as $row) { echo $row->username; }

Você pode notar que não precisamos escrever nenhum código antes de podermos começar a trabalhar com nossos dados. Por usar convenções, o CakePHP irá utilizar classes padrão para tabelas e entidades que ainda não foram definidas.

Se nós quiséssemos criar um usuário e salvá-lo (com validação) faríamos algo assim:

use Cake\ORM\TableRegistry;

// Prior to 3.6 use TableRegistry::get('Users') $users = TableRegistry::getTableLocator()->get('Users'); $user = $users->newEntity(['email' => 'mark@example.com']); $users->save($user);

A Camada View

A View renderiza uma apresentação de dados modelados. Estando separada dos objetos da Model, é responsável por utilizar a informação que tem disponível para produzir qualquer interface de apresentação que a sua aplicação possa precisar.

Por exemplo, a view pode usar dados da model para renderizar uma página HTML que os contenha, ou um resultado formatado como XML:

// No arquivo view, nós renderizaremos um 'element' para cada usuário.

element('user', ['user' => $user]) ?>

A camada View fornece vários pontos de extensão, como View Templates, Elements e View Cells (Células de Visuali- zação) para permitir que você reutilize sua lógica de apresentação.

A camada View não está limitada somente a HTML ou apresentação textual dos dados. Ela pode ser usada para en- tregar formatos de dado comuns como JSON, XML, e, através de uma arquitetura encaixável, qualquer outro formato que você venha a precisar.

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 Mo- del, 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:

2 Capítulo 1. CakePHP num piscar de olhos

CakePHP Cookbook Documentation, Release 4.x

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 /controllers/middleware.
  10. O HttpServer envia a resposta para o servidor web.

Apenas o Começo

Esperamos que essa rápida visão geral tenha despertado seu interesse. Alguns outros grandes recursos do CakePHP são:

  • Framework de cache que integra com Memcached, Redis e outros backends.
  • Poderosas ferramentas de geração de código para você começar imediatamente.
  • Framework de teste integrado para você assegurar-se que seu código funciona perfeitamente.

Os próximos passos óbvios são baixar o CakePHP e ler o tutorial e construir algo fantástico.

Ciclo de Requisições do CakePHP 3

CakePHP Cookbook Documentation, Release 4.x

Leitura Adicional

Onde Conseguir Ajuda

O website oficial do CakePHP

https://cakephp.org

O website oficial do CakePHP é sempre um ótimo lugar para visitar. Ele provê links para ferramentas comumente utilizadas por desenvolvedores, screencasts, oportunidades de doação e downloads.

O Cookbook

https://book.cakephp.org

Esse manual deveria ser o primeiro lugar para onde você iria afim de conseguir respostas. Assim como muitos outros projetos de código aberto, nós conseguimos novos colaboradores regularmente. Tente o seu melhor para responder suas questões por si só. Respostas vão vir lentamente, e provavelmente continuarão longas. Você pode suavizar nossa carga de suporte. Tanto o manual quanto a API possuem um componente online.

A Bakery

https://bakery.cakephp.org

A “padaria” do CakePHP é um local para todas as coisas relacionadas ao CakePHP. Visite-a para tutoriais, estudos de caso e exemplos de código. Uma vez que você tenha se familiarizado com o CakePHP, autentique-se e compartilhe seu conhecimento com a comunidade, ganhe instantaneamente fama e fortuna.

A API

https://api.cakephp.org/

Diretamente ao ponto, dos desenvolvedores do núcleo do CakePHP, a API (Application Programming Interface) do CakePHP é a mais compreensiva documentação sobre os detalhes técnicos e minuciosos sobre do funcionamento interno do framework.

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

Leitura Adicional 5

CakePHP Cookbook Documentation, Release 4.x

  • #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 convençõ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.

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 control- lers.

Métodos públicos nos Controllers são frequentemente referenciados como ‘actions’ acessíveis através de um nave- gador 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 (^4) https://github.com/cakephp?tab=members (^5) https://stackoverflow.com/questions/tagged/cakephp/ (^6) http://cakephp-fr.org

6 Capítulo 1. CakePHP num piscar de olhos

CakePHP Cookbook Documentation, Release 4.x

table bakers através da chave estrangeira baker_id. Para uma tabela como category_types a qual o nome contém mais palavras, a chave estrangeira seria a category_type_id.

tables de união, usadas no relacionamento BelongsToMany entre models, devem ser nomeadas depois das tables que ela está unindo, ordenadas em ordem alfabética (apples_zebras ao invés de zebras_apples).

Convenções para Views

Arquivos de template views são nomeadas seguindo as funções que a exibem do controller, separa- das por sublinhado. A função getReady() da classe PeopleController buscará por um template view em src/Template/People/get_ready.ctp. O padrão é src/Template/Controller/underscored_function_name.ctp.

Por nomear as partes de sua aplicação utilizando as convenções do CakePHP, você ganha funcionalidades sem luta e sem amarras de configuração. Aqui está um exemplo final que enlaça as convenções juntas:

  • Table: “people”
  • Classe Table: “PeopleTable”, encontrada em src/Model/Table/PeopleTable.php
  • Classe Entity: “Person”, encontrada em src/Model/Entity/Person.php
  • Classe Controller: “PeopleController”, encontrada em src/Controller/PeopleController.php
  • View template, encontrado em src/Template/People/index.ctp

Utilizando estas convenções, o CakePHP sabe que uma requisição para http://example.com/people/ mapeia para uma chamada da função index() do PeopleController, onde o model Person é automaticamente disponbilizado (e auto- maticamente amarrado à table ‘people’ no banco de dados), e então renderiza-se um arquivo view template. Nenhuma destes relacionamentos foi configurado de qualquer forma se não por criar classes e arquivos que você precisaria criar de qualquer forma.

Agora que você foi introduzido aos fundamentos do CakePHP, você pode tentar seguir através do Tutorial - Criando um Blog - Parte 1 para ver como as coisas se encaixam juntas.

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

8 Capítulo 1. CakePHP num piscar de olhos

CakePHP Cookbook Documentation, Release 4.x

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 armazena- dos 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.

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.

Leitura Adicional 9

CAPÍTULO 2

Guia de Início Rápido

A melhor forma de viver experiências e aprender sobre CakePHP é sentar e construir algo. Para começar nós iremos construir uma aplicação simples de blog.

Tutorial - Criando um Bookmarker - Parte 1

Esse tutorial vai guiar você através da criação de uma simples aplicação de marcação (bookmarker). Para começar, nós vamos instalar o CakePHP, criar nosso banco de dados, e usar as ferramentas que o CakePHP fornece para subir nossa aplicação de forma rápida.

Aqui está o que você vai precisar:

  1. Um servidor de banco de dados. Nós vamos usar o servidor MySQL neste tutorial. Você precisa saber o suficiente sobre SQL para criar um banco de dados: O CakePHP vai tomar as rédeas a partir daí. Por nós estarmos usando o MySQL, também certifique-se que você tem a extensão pdo_mysql habilitada no PHP.
  2. Conhecimento básico sobre PHP.

Vamos começar!

Instalação do CakePHP

A maneira mais fácil de instalar o CakePHP é usando Composer, um gerenciador de dependências para o PHP. É uma forma simples de instalar o CakePHP a partir de seu terminal ou prompt de comando. Primeiro, você precisa baixar e instalar o Composer. Se você tiver instalada a extensão cURL do PHP, execute o seguinte comando:

curl -s https://getcomposer.org/installer | php

Ao invés disso, você também pode baixar o arquivo composer.phar do site^7 oficial.

(^7) https://getcomposer.org/download/

CakePHP Cookbook Documentation, Release 4.x

Em seguida, basta digitar a seguinte linha no seu terminal a partir do diretório onde se localiza o arquivo composer. phar para instalar o esqueleto de aplicações do CakePHP no diretório bookmarker.

php composer.phar create-project --prefer-dist cakephp/app:4.* bookmarker

A vantagem de usar Composer é que ele irá completar automaticamente um conjunto importante de tarefas, como configurar as permissões de arquivo e criar a sua config/app.php.

Há outras maneiras de instalar o CakePHP. Se você não puder ou não quiser usar Composer, veja a seção Instalação.

Independentemente de como você baixou o CakePHP, uma vez que sua instalação for concluída, a estrutura dos diretórios deve ficar parecida com o seguinte:

/bookmarker /bin /config /logs /plugins /src /tests /tmp /vendor /webroot .editorconfig .gitignore .htaccess .travis.yml composer.json index.php phpunit.xml.dist README.md

Agora pode ser um bom momento para aprender sobre como a estrutura de diretórios do CakePHP funciona: Confira a seção Estrutura de pastas do CakePHP.

Verificando nossa instalação

Podemos checar rapidamente que a nossa instalação está correta, verificando a página inicial padrão. Antes que você possa fazer isso, você vai precisar iniciar o servidor de desenvolvimento:

bin/cake server

Isto irá iniciar o servidor embutido do PHP na porta 8765. Abra http://localhost:8765 em seu navegador para ver a página de boas-vindas. Todas as verificações devem estar checadas corretamente, a não ser a conexão com banco de dados do CakePHP. Se não, você pode precisar instalar extensões do PHP adicionais, ou definir permissões de diretório.

Criando o banco de dados

Em seguida, vamos criar o banco de dados para a nossa aplicação. Se você ainda não tiver feito isso, crie um banco de dados vazio para uso nesse tutorial, com um nome de sua escolha, por exemplo, cake_bookmarks. Você pode executar o seguinte SQL para criar as tabelas necessárias:

CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY , (continues on next page)

12 Capítulo 2. Guia de Início Rápido