Table of Contents : Manual

Começando com CakePHP

Tortinha, tortinha...

Prefácio

Bem vindo ao paraíso de desenvolvimento web.

Se você está lendo o prefácio de um manual técnico, é porque está lhe sobrando bastante tempo. Não somos celebridades e o material é o que vem depois. Você pode pular estes capítulos supérfluos e ir direto ao ponto nas seções que você quer.

Requisitos do leitor

Para ler este manual, você já deve estar familiarizado com o PHP. Conhecer de programação orientada a objeto irá lhe ajudar bastante, porém eu suponho que as seções de introdução deste manual servirão como um bom exemplo do que vem pela frente. Com isso, este material é escrito para desenvolvedores de todos os níveis de habilidade que desejam criar algo robusto, sustentável, rápido e agradável.

Devo alertar que haverá seções que abordam tecnologias que estão realmente fora do âmbito deste manual. Administração de servidor Web, AJAX e JavaScript, por exemplo, podem ser mencionados em partes do texto, mas na maior parte do texto nós estaremos focado no CakePHP.

Introdução ao CakePHP

O que é CakePHP? Por que usar?

CakePHP é gratuito, de código aberto, uma framework em PHP para desenvolvimento ágil. É uma estrutura fundamental para programadores criarem aplicações web. Nosso principal objetivo é permitir que você trabalhe em uma estrutura que possa programar de forma rápida e sem a perda de flexibilidade.

CakePHP joga fora a monotonia do desenvolvimento web. Nós oferecemos todas as ferramentas que você precisa para começar programando o que realmente deseja: a lógica específica da sua aplicação. Em vez de reinventar a roda cada vez que se constrói um novo projeto, pegue uma cópia do CakePHP e comece a construir sua carruagem real da sua aplicação.

CakePHP tem uma equipe de desenvolvedores e uma grande comunidade, trazendo grande valor ao projeto. Além de manter você fora do reinvento da roda, usando CakePHP significa que o núcleo da sua aplicação é bem testado e constantemente aperfeiçoado.

Abaixo segue uma pequena lista dos recursos que você poderá desfrutar no CakePHP:

  • Ativo e com comunidade amigável;
  • Licença flexível;
  • Compatibilidade com PHP 4 e PHP 5;
  • Integrando funcionalidade CRUD (Create, Read, Update and Delete, ou Criar, Ler, Atualizar e Excluir) para interagir com o banco de dados;
  • Aplicações scaffolding;
  • Geração de código;
  • Arquitetura MVC (Model, View, Controller, ou Modelo, Visões, Controlador);
  • Requisições ao expedidor com clareza, URLs personalizáveis e rotas;
  • Validações internas;
  • Templates rápidos e flexíveis (Sintaxe PHP e com ajudantes);
  • Ajudantes para usar AJAX, JavaScript, HTML, formulários e outros nas visões;
  • Componentes de E-mail, Cookie, Segurança, Sessões, Manipulação de Requisições e outros;
  • Lista de controle de acessos flexível;
  • Limpeza de dados;
  • Flexibilidade com cache;
  • Internacionalização;
  • Funciona em qualquer subdiretório do seu website, com poucas configurações no Apache.

Onde obter ajuda?

Cookbook

http://book.cakephp.org (em inglês)
http://book.cakephp.org/pt (em português)

Você começou no lugar certo. Este manual (e a API) deve ser provavelmente o primeiro lugar que você vá para procurar as respostas das suas dúvidas. Assim como acontece com muitos outros projetos de código aberto, nós obtemos novos usuários regularmente. Tentamos ser os melhores para responder seus questionamentos em primeiro lugar. As respostas podem demorar a chegar, mas permanecerá por tempos e ajudará a esclarecer outras pessoas. Tanto o manual, quanto a API podem ser encontradas online.

 

API

http://api.cakephp.org/1.2 (em imglês)

Direto ao assunto e diretamente do núcleo de desenvolvedores, o CakePHP API (interface de programação da aplicação) é a mais completa documentação em torno de todos os detalhes do funcionamento interno do framework. É um encaminhamento direto ao código de referência, por isso traga seu chapéu hélice.

 

Canal IRC

#cakephp @ irc.freenode.net (em inglês)
#cakephp-pt @ irc.freenode.net (em português)

Se você estiver assustado, dê um grito no canal de IRC do CakePHP. Alguém da equipe de desenvolvimento normalmente está lá, principalmente durante o dia. Se você precisar de alguma ajuda, deseja encontrar usuários na sua área ou gostaria de doar o seu novo carro esportivo, adoraríamos ouvir você.

 

Bakery

http://bakery.cakephp.org (em inglês)

O CakePHP Bakery é uma casa para todas as coisas de CakePHP. Visite este site para ver tutoriais, estudos de caso e exemplos de código. Assim que estiver familiarizado com o CakePHP, faça o login e compartilhe seus conhecimentos com a comunidade para ganhar fama e fortuna.

 

CakeForge

http://www.cakeforge.org (em inglês)

O CakeForge é outro recurso que os desenvolvedores podem usar para hospedar seus projetos usando CakePHP e compartilhar com outras pessoas. Se você está olhando para achar projetos existentes, ou querendo compartilhar, acesso o CakeForge.

 

Site oficial do CakePHP

http://www.cakephp.org (em inglês)

O site oficial do CakePHP está sempre esperando sua visita. Ele tem links para sites de outros desenvolvedores, screencasts, oportunidade para doar ao projeto e downloads.

 

Grupo Google

http://groups.google.com/group/cake-php (em inglês)
http://groups.google.com/group/cake-php-pt (em português)

O CakePHP também tem um grupo no Google muito ativo. Ele pode ser um excelente recurso para encontrar respostas arquivadas, perguntas freqüentes, e obter respostas para problemas imediatos.

Entendendo o Model-View-Controller (MVC)

Introdução

Aplicações bem escritas em CakePHP segue o design pattern MVC (Model-View-Controller ou Modelo-Visão-Controlador). Programando em MVC separa sua aplicação em três partes principais. O model representa os dados, a view representa a visualização dos dados e o controller manipula e roteia as requisições dos usuários.

IMAGE

Figura 1: Requisição básica de MVC

A Figura 1 mostra um exemplo de uma simples requisição MVC em CakePHP. Para fins ilustrativos, digamos que um usuário chamado Ricardo apenas clicou no link “Comprar um bolo personalizado agora!” da sua aplicação.

  1. Ricardo clica no link apontando para http://www.exemplo.com.br/cakes/comprar e seu browser faz uma requisição ao site;
  2. O dispatcher (expedidor) verifica a URL requisitada (/cakes/comprar) e redireciona ao controller correto;
  3. O controller executa a lógica específica da aplicação. Por exemplo, verifica se o Ricardo está logado;
  4. O controller também usa os models para acessar os dados da sua aplicação. Muitas vezes, os models representam as tabelas do banco de dados, mas podem representar registros LDAP, feeds de RSS ou até mesmo arquivos do sistema. Neste exemplo, o controller usa o model para trazer ao Ricardo as últimas compras do banco de dados;
  5. Depois que o controller fez sua mágica sobre os dados, ele repassa para a view. A view faz com que os dados fiquem prontos para a representação do usuário. As views em CakePHP normalmente vem no formato HTML, mas pode ser facilmente exibidas em PDF, documento XML, um objeto JSON ou outro formato qualquer, dependendo da sua necessidade;
  6. Uma vez que a view tenha usado os dados provenientes do controller para construir a página, o conteúdo é retornado ao browser do Ricardo.

Aproximadamente toda requisição da sua aplicação seguirá o modelo básico do modelo. Nós vamos especificar os detalhes mais adiante, mas mantenha essa visão geral no seu pensamento.

Benefícios

Por que usar MVC? Porque é um verdadeiro padrão de desenvolvimento (design pattern) e torna fácil a manutenção da sua aplicação, com pacotes modulares de rápido desenvolvimento. Elaborar tarefas divididas entre models, views e controllers, faz com que sua aplicação fique leve e independente. Novas funcionalidades são facilmente adicionadas e dar nova cara nas características antigas pode ser feitas num piscar de olhos. O design modular e separado também permite aos desenvolvedores e designers trabalhem simultaneamente, incluindo a habilidade de um construir um rápido protótipo. A separação também permite que os desenvolvedores alterem uma parte da aplicação sem afetar outras.

Se você nunca desenvolveu uma aplicação neste sentido, isso vai lhe agradar muito, mas estamos confiantes que depois de construir sua primeira aplicação em CakePHP, você não vai querer voltar atrás.