SlideShare uma empresa Scribd logo
1 de 87
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]

Mais conteúdo relacionado

Mais procurados

Validação e Operações CRUD em PHP
Validação e Operações CRUD em PHPValidação e Operações CRUD em PHP
Validação e Operações CRUD em PHPBreno Vitorino
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSamyr Abdo
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)Breno Vitorino
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...Rafael Jaques
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisFabrízio Mello
 
Seminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionSeminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionDavi Rodrigues
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Integração do Flex com PHP através do AMFPHP
Integração do Flex com PHP através do AMFPHPIntegração do Flex com PHP através do AMFPHP
Integração do Flex com PHP através do AMFPHPelliando dias
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009Rafael Dohms
 

Mais procurados (20)

Validação e Operações CRUD em PHP
Validação e Operações CRUD em PHPValidação e Operações CRUD em PHP
Validação e Operações CRUD em PHP
 
Slides
SlidesSlides
Slides
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr Abdo
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
 
Doctrine for Dummies
Doctrine for DummiesDoctrine for Dummies
Doctrine for Dummies
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
 
Php
PhpPhp
Php
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
 
Aula 8 - SQL Injection
Aula 8 - SQL InjectionAula 8 - SQL Injection
Aula 8 - SQL Injection
 
Seminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionSeminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL Injection
 
Rest Beer v2
Rest Beer v2Rest Beer v2
Rest Beer v2
 
Ap 04 05_10
Ap 04 05_10Ap 04 05_10
Ap 04 05_10
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 
Integração do Flex com PHP através do AMFPHP
Integração do Flex com PHP através do AMFPHPIntegração do Flex com PHP através do AMFPHP
Integração do Flex com PHP através do AMFPHP
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Aprofunde se no php 5.3
Aprofunde se no php 5.3Aprofunde se no php 5.3
Aprofunde se no php 5.3
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009
 

Destaque

Sua aplicação não é filha de um framework
Sua aplicação não é filha de um frameworkSua aplicação não é filha de um framework
Sua aplicação não é filha de um frameworkDaniel Lima
 
PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaMarcelo Fleury
 
Orquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyOrquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyFlávio Lisboa
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silexMichael Douglas
 

Destaque (7)

Sua aplicação não é filha de um framework
Sua aplicação não é filha de um frameworkSua aplicação não é filha de um framework
Sua aplicação não é filha de um framework
 
PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A Pena
 
Agilidade Com Scrum
Agilidade Com ScrumAgilidade Com Scrum
Agilidade Com Scrum
 
Orquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyOrquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com Symfony
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Api usando Silex
Api usando SilexApi usando Silex
Api usando Silex
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silex
 

Semelhante a Php FrameWARks - sem CakePHP

PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend FrameworkJaime Neto
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraDavid O'Keefe
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3Flávio Lisboa
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Jaime Neto
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Elton Minetto
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009silva.edgar
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Tchelinux
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1Sliedesharessbarbosa
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOLgrupoweblovers
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 

Semelhante a Php FrameWARks - sem CakePHP (20)

PHP FrameWARks - FISL
PHP FrameWARks - FISLPHP FrameWARks - FISL
PHP FrameWARks - FISL
 
PHP FrameWARks - Code Igniter
PHP FrameWARks - Code IgniterPHP FrameWARks - Code Igniter
PHP FrameWARks - Code Igniter
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend Framework
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3
 
Python 08
Python 08Python 08
Python 08
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 
Dev Ext PHP
Dev Ext PHPDev Ext PHP
Dev Ext PHP
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 

Mais de Marcio Albuquerque

Mais de Marcio Albuquerque (8)

Não pratique o Ágil! Seja Ágil!!!
Não pratique o Ágil! Seja Ágil!!!Não pratique o Ágil! Seja Ágil!!!
Não pratique o Ágil! Seja Ágil!!!
 
Php for Android
Php for AndroidPhp for Android
Php for Android
 
E tem isso no PHP? Novidades do PHP 5.3 e 5.4
E tem isso no PHP? Novidades do PHP 5.3 e 5.4 E tem isso no PHP? Novidades do PHP 5.3 e 5.4
E tem isso no PHP? Novidades do PHP 5.3 e 5.4
 
Php corporativo
Php corporativoPhp corporativo
Php corporativo
 
PHP FrameWARks - Symfony
PHP FrameWARks - SymfonyPHP FrameWARks - Symfony
PHP FrameWARks - Symfony
 
PHP FrameWARks - CakePHP
PHP FrameWARks - CakePHPPHP FrameWARks - CakePHP
PHP FrameWARks - CakePHP
 
PHP FrameWARks - Zend Framework
PHP FrameWARks - Zend FrameworkPHP FrameWARks - Zend Framework
PHP FrameWARks - Zend Framework
 
Php Para Iniciantes
Php Para IniciantesPhp Para Iniciantes
Php Para Iniciantes
 

Php FrameWARks - sem CakePHP

Notas do Editor

  1. Aplausos!!!
  2. É 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
  3. 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
  4. 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
  5. 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.
  6. 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.
  7. Meu sobrinho aprendendo CI
  8. Meu sobrinho aprendendo CI
  9. 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
  10. 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
  11. Segurança Configuração em arquivo YAML sfUser setAuthenticated() isAuthenticated() addCredential() hasCredential()
  12. 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