Análise de
Frameworks PHP

  Adão F C Gonçalves
    adao@adao.eti.br
   Analista de Sistemas
Fontes de informações



Podcasts




                               Artigos on-line
           Palestras on-line
TÓPICOS
•Principais Frameworks PHP
•Características
•Um mais sobre o CakePHP.
•Cookbook do CakePHP
•Possíveis desvantagens?
•Padrão de Arquitetura MVC
•Estrutura funcional
•Estrutura de arquivos
•Convenções
•Aplicação de Exemplos
•SEGURANÇA – Componentes Principais
•CRUD via Scaffolding
•CRUD via BAKE
•Requisitos
•CONCLUSÕES
•REFERENCIAS
Principais Frameworks PHP
Características comuns

              •Fácil Instalação
              •Agilizar o desenvolvimento
              •Geradores de código
              •Conceitos Ruby on Rails (CakePHP e Symfony)
              •Componente de segurança: ACL, Auth e etc
              •Gerencimanto de Cache
              •Padrão de arquitetura MVC
              •Padrão de projeto OHM (Dados->Classe->Objeto)
              •Documentação e Comunidades ativas


               Curva de aprendizagem
               CakePHP e CodeIgniter são mais focados na simplicidade e
               oferecem menor curva de aprendizagem. Destes o CakePHP
               é o mais “robusto”.
Um pouco mais sobre o CakePHP
CakePHP é gratuito, de código aberto, um framework em PHP para
desenvolvimento ágil. Possibilita aos programadores de todos os
níveis desenvolverem aplicações web robustas rapidamente.




http://www.cakephp.com.br/pages/features
CakePHP
Por que usar o CakePHP?
•Porque é um verdadeiro padrão de projeto (design
pattern) e torna fácil a manutenção da sua aplicação,
com pacotes modulares de rápido desenvolvimento.

•A divisão em camadas (models, views e controllers) faz
com que sua aplicação fique leve e independente.

•Usa a técnica ORM (Mapeamento objeto-relacional).
Usa convenção ao invés de configuração.
Sumário completo do Cookbook do CakePHP




         http://book.cakephp.org/pt/toc/3/Manual
CakePHP
CERTIFICAÇÃO
CakePHP
Possíveis desvantagens?
•Requer uma quantidade maior de tempo para
analisar e modelar o sistema;
CakePHP
Padrão de Arquitetura MVC
CakePHP
Estrutura funcional
CakePHP
Estrutura de arquivos
CakePHP
Convenções
MODEL
•Nome da tabela SEMPRE no plural (ex.: model post -> tabela posts)
•Toda tabela deve possuir a chave primária id (auto-numérica ou com 36
caracteres)

CONTROLLER
•Nome SEMPRE no plural (ex.: model post -> controller posts)
•Nome do arquivo no padrão <model no plural>_controller.php
CakePHP
Exemplos – configurar batabase
CakePHP
Exemplos – Tabela no database
CakePHP
Exemplos – Criar o modelo
CakePHP
Exemplos – Criar a classe Controller
CakePHP
Exemplos – Criar o(s) view
CakePHP
Exemplos – Acesse a app
CakePHP
Exemplos – ...
CakePHP
Exemplos – Adicionando ações
CakePHP
Exemplos – Adicionando view à ação
CakePHP
Exemplos – Acessando a nova ação
CakePHP
Exemplos – Acessando a nova ação
CakePHP
Exemplos – Adicionando um post
CakePHP
Exemplos – Adicionando um post
CakePHP
Exemplos – Adicionando um post
CakePHP
Exemplos – Validação dos dados
CakePHP
Exemplos – Validação dos dados
CakePHP
SEGURANÇA – ACL
ACL – O ACL (Lista de Controle de Acesso) é um componente nativo que
fornece controle de acesso aos dados.
CakePHP
SEGURANÇA – Componente Auth
Auth - O Ault (Autenticação) é um componente que controla o acesso de usuários
ao sistema web. Combinado com ACL, cria um complexo sistema de segurança.
CakePHP
SEGURANÇA – Componente Security
Security – Um componente que permite ajustar maior controle à autenticação de
HTTP.
CakePHP
 CRUD via Scaffolding

Vantagens
  •Ótimo pra prototipar aplicações
  •Pode ser usado em aplicações em produção

Desvantagens
  •Não foi feito para ser flexível
  •Baixa segurança (em seu estado default)
CakePHP
CRUD via BAKE
CakePHP
CRUD via BAKE
Vantagens
•Cria “esqueletos” de models, views e controllers
•Ao contrário do scaffold, cria arquivos reais na app
•Permite configurar os modelos

Desvantagens
•Acostuma mal!
•O código pode não coincidir com Code Standard da
equipe.
CakePHP
Requisitos
•Servidor HTTP (ex.: Apache com mod_rewrite);
•PHP 4.3.2 ou superior;
•Banco de dados. Oferece suporte para:
    •MySQL (4 ou superior);
    •PostgreSQL;
    •Firebird DB2;
    •Microsoft SQL Server;
    •Oracle;
    •SQLife;
    •ODBC; e
    •ADOdb.
CakePHP
    CONCLUSÕES
    •O uso de qualquer um desses Frameworks,
    aumenta a produtividade.
    •Nesta apresentação foi dado um enfoque
    maior ao CakePHP, principalmente pelo:
       •Suporta à grandes aplicações
       •Baixa curva de aprendizagem
       •Ferramentas de prototipação poderosas
       (bake/scaffold)
       •Arquitetura consistente e flexível
       •Helpers ajudam “um bocado”
       •Codificação limpa, correta e sustentável
CakePHP
REFERENCIAS
O’BRIEN, Duane. Elabore web sites rapidamente com CakePHP:
     •http://www.ibm.com/developerworks/br/library/os-php-cake1/
     •http://www.ibm.com/developerworks/br/library/os-php-cake2/
     •http://www.ibm.com/developerworks/br/library/os-php-cake3/
     •http://www.ibm.com/developerworks/br/library/os-php-cake4/
     •http://www.ibm.com/developerworks/br/library/os-php-cake5/
Artigos:
     •HACKIN, Léo. Aprendendo a fazer um primeiro bolo.
     http://www.leohachin.com.br/blog.
     •LOPES, Laura. CakePHP Tutorial. http://www.slideshare.net/lauralopes/cake-php-
     2356380
•Manual oficial do CakePHP. http://book.cakephp.org/pt
•ALBUQUERQUE, Márcio; THOMAS, Leonardo; CURI, Marcelo; FRANCO, Sandro. Palestra
FrameWARks PHP. http://vimeo.com/8859258

Cake PHP