PHP FrameWARks Leo Thomas, Marcelo, Márcio e Sandro
O que é um framework?
Conjunto de Classes Funcionalidade(s) específica(s) Dita o fluxo de controle
 
 
 
Zend Framework O FRAMEWORK!!!
Framework COMPLETO Desenvolvimento de aplicações PHP 5
Baixar o pacote Estrutura dediretórios (zf.sh) Configurar o bootstrap Configurar o application.ini Configurar o .conf (opcional) ck
CAKE - Framework para desenvolvimento RÁPIDO em PHP Última versão estável: 1.2.3.8166 PHP 4.x e 5.x
Vocês ainda não viram... O Framework
O Framework mais rápido (muito rápido mesmo)
Instalação e Configuração -versão atual: 1.7.2 roda no PHP 5.3 -baixe e descompacte o arquivo -informe parâmetros de conexão com o banco application/config/database.php -informe a raiz do site application/config/config.php sf
Framework de verdade é esse daqui!
Instalação e Configuração... - Sandbox - Pear - Donwload do pacote
Configuração baseada em arquivos yaml...
Arquitetura... e X treme P rogramming
MENSAGEM SUBLIMINAR ZEND FRAMEWORK É O MELHOR!!!
Como o symfony ajuda o desenvolvimento ágil?
Potente gerador de código...
Potente gerador de código... ci
Arquitetura: simples... e completa
Acoplamento,extensão
Curva de aprendizado...
Curva de aprendizado... -tem tudo no user guide -video tutoriais -fórum zf
 
LIBERDADE!!!
ORM DAO Active Record
class Usuarios extends Zend_Db_Table { protected $_name = "usuarios"; } ci
MENSAGEM SUBLIMINAR USE O ZEND FRAMEWORK!!
Acesso a dados e ORM: *Active Record à disposição Leitura fácil: $this->db->get("tabela");// SELECT * FROM tabela
class User extends Model { function User() { parent::Model();// Chama o construtor do Model } function get10() { $query = $this->db->get('user', 10); return $query->result(); } sf
Acesso a Dados e ORM...
symfony propel:build-schema symfony propel:build-model symfony doctrine:build-schema symfony doctrine:build-model
Formulários e Validações...
- sfForm - sfFormPropel - sfFormDoctrine - sfValidator sfValidatorDate sfValidatorDateRange sfValidatorEmail sfValidatorNumber sfValidatorInteger sfValidatorString sfCallbackValidator
symfony propel:build-forms symfony doctrine:build-forms zf
Zend_Form Zend_Form_Element_* Validações XSS e SQL Injection Zend_Validation ci
MENSAGEM SUBLIMINAR CAKE FAZ MAL SAÚDE!!!
Formulários e validações
Formulários: helpers para tags html echo form_input('user',''); echo form_password('pass','') echo form_textarea('texto','') echo form_checkbox('confirma', '1', TRUE);
Validações: $rules['user'] = "required"; $rules['pass'] = "required"; $rules['idade'] = "min_value"; $rules['email'] = "valid_email";
Helpers, libs, plugins $this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('user', 'Username', 'required'); $this->form_validation->set_rules('pass', 'Password', 'required');
Cache de páginas: $this­>output­>cache(60);//Controller Utiliza o sistema de arquivos: system/cache zf
Zend_Cache Backend Arquivo Banco de Dados Xcache APC Memcache ...
Zend_Cache Frontend Saída de Dados ( Output ) Funções Objetos Páginas ... sf
MENSAGEM SUBLIMINAR SYMFONY CAUSA IMPOTÊNCIA
Cache... - sfAPCCache, - sfEAcceleratorCache - sfMemcacheCache - sfSQLiteCache - sfXCacheCache
Segurança...
Autenticação... Classe: sfUser Métodos: setAuthenticated() isAuthenticated()
Autorização... Classe: sfUser Métodos: addCredential() hasCredential( ) zf
Segurança mirrada...
Zend_Acl Papéis ( Roles ) Recursos ( Resources ) Zend_Auth Banco de Dados HTTP LDAP Digest OpenID ci
MENSAGEM SUBLIMINAR CODE IGNITER BAIXA O QI
Segurança: a classe input $dados = $this->input->xss_clean($dados);
Segurança: array $_GET sob controle http://localhost/index.php/cadastro/user/1 $user_id = $this­>uri­>segment(3, 0); Classe DB: valores limpos $this->db->where('nome', $nome); // Produces: WHERE nome = 'Leo'
Localização e Internacionalização system/application/language/pt-BR/form_lang.php $this->lang->load('form-lang', 'pr-BR'); $this->lang->line('required'); sf
Localização... Internacionalização...
User Culture: combinação do idioma e país do usuário Ex: pt_BR, en_US Helpers: informações no formato correto (de acordo com o User Culture) - format_date - format_datetime - format_currency - format_number ...
Armazenar tradução no banco de dados: product ( id, price) product_i18n (id, culture, name)
$product = ProductPeer::retrieveByPk(1); $product->setName('Nome do produto'); $product->save(); echo $product->getName(); => 'Nome do produto' $product->setName('Product name', 'en'); $product->save(); echo $product->getName('en'); => 'Product name' zf
Zend_Locale Zend_Date Zend_Currency Zend_Measure_*
Zend_Translate Array CSV INI Gettext ...
Documentação Completa Quick Start API Guia de Referência
e tem “documentações”...
Comunidade Ativa Contribuições
e tem “comunidades”... ci
Documentação e Comunidade sf
Documentação e Comunidade...
http://www.symfony-project.org
Quem aqui usa Symfony?
 
 
ci
Quem aqui usa Code Igniter?
zf
Profissionais Zend Framework
Super Profissional Zend Framework
Quem usa Zend Framework?
MENSAGEM SUBLIMINAR LEMBRE-SE... CHUCK NORRIS USA ZEND
Tudo Igual... PHP 5 OO MVC ORM Formulários e Validações Cache I18n e l10n ...
Aumento de Produtividade
 
Escolha um... E comece!!!
Mas claro que o Zend Framework é o melhor!!!
Obrigado!!!
[email_address] http://www.phpba.com.br [email_address] [email_address] [email_address] [email_address] [email_address] [email_address] [email_address]

Php FrameWARks - sem CakePHP

Notas do Editor

  • #12 Aplausos!!!
  • #13 É o framework pra você que: Quer uma instalação leve Quer performance excepcional Quer compatibilidade vasta com versões de PHP Quer simplificar a configuração Quer um framework que não precise mexer em linha de comando Quer liberdade quanto a regras de codificação Quer optar por utilizar templates como smarty, ou não Quer simplificar em vez de complicar Quer documentação clara e objetiva
  • #15 Framework de verdade é essa daqui! Foco em aplicações robustas em contexto empresarial Última versão estável: 1.2.9 (11/2008) Versão Beta 1.3 (11/2009) – suporte 1 ano Versão Beta 1.4 (12/2009) – suporte 3 anos PHP >= 5.2.4
  • #16 Instalação e configuração Três opções de instalação: Sandbox: para usuários que desejam testar o symfony pear: $php pear install symfony/symfony (não recomendado se você deseja uma versão do symfony para cada projeto) Download do pacote (recomendada) Criar o projeto e aplicação Configurar o webserver
  • #17 Configuração e instalação, continuação... YAML é um formato de serialização (codificação de dados) de dados legíveis por humanos inspirado em linguagens como XML, C, Python, Perl, assim como o formato de correio eletrônico especificado pela RFC 2822. YAML foi proposto por Clark Evans em 2001 em conjunto com Ingy döt Net e Oren Ben-Kiki. YAML é um acrónimo recursivo que significa "YAML Ain't Markup Language" (em português, "YAML não é outra linguagem de marcação"). No início do seu desenvolvimento YAML significava "Yet Another Markup Language" ("Mais outra linguagem de marcação") para distinguir seu propósito centrado em dados no lugar de documentos marcados. Como é usado frequentemente XML para serialização de dados e XML é uma autêntica linguagem de marcação de documentos, é razoável considerar o YAML como uma linguagem de marcação rápida.
  • #18 Arquitetura O Symfony é projetado para permitir que os desenvolvedores apliquem princípios ágeis do desenvolvimento (tais como DRY, KISS ou XP) e foquem na regras de negócio sem necessitar escrever muitos arquivos de configuração XML, comuns nos frameworks atuais. Symfony ainda tem como objetivo construir aplicações robustas em contexto empresarial, e dar aos desenvolvedores controle total sobre a configuração: da estrutura de diretórios às bibliotecas externas, quase tudo pode ser personalizado. Para atingir os guidelines de desenvolvimento das empresas, o framework é empacotado com ferramentas adicionais para ajudar os desenvolvedores nos testes, depuração e documentação dos projetos.
  • #25 Meu sobrinho aprendendo CI
  • #26 Meu sobrinho aprendendo CI
  • #34 Acesso a Dados e ORM Camada de abstração: 1.0.x e 1.1.x => Creole 1.2.x => PDO ORM: Propel Doctrine Propel é o padrão, mas é simples alterar para Doctrine Os dois podem ser desabilitados Comandos: symfony propel:build-model
  • #49 Cache Symfony oferece um sistema de cache flexível, configurado através de arquivos YAML Várias formar de armazenar o cache: sfAPCCache, sfEAcceleratorCache, sfMemcacheCache, sfSQLiteCache, and sfXCacheCache Permitir cache de uma ação, de uma página ou apenas partes de página Aceita parâmetros
  • #50 Segurança Configuração em arquivo YAML sfUser setAuthenticated() isAuthenticated() addCredential() hasCredential()
  • #59 Localização e internacionalização User Culture: combinação do país e idioma do usuário Alterando o User Culture do usuário $this->getUser()->setCulture('pt_BR'); Helpers => informações no formato correto (de acordo com o User Culture): format_date, format_datetime, format_currency, format_number, etc Helper I18N