Php FrameWARks - sem CakePHP

2,522 views

Published on

Complete PHP FrameWARks presentation without the CakePHP part.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,522
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
96
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Aplausos!!!
  • É 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
  • 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
  • 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
  • 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.
  • 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.
  • Meu sobrinho aprendendo CI
  • Meu sobrinho aprendendo CI
  • 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
  • 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
  • Segurança Configuração em arquivo YAML sfUser setAuthenticated() isAuthenticated() addCredential() hasCredential()
  • 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
  • Php FrameWARks - sem CakePHP

    1. 1. PHP FrameWARks Leo Thomas, Marcelo, Márcio e Sandro
    2. 2. O que é um framework?
    3. 3. Conjunto de Classes Funcionalidade(s) específica(s) Dita o fluxo de controle
    4. 7. Zend Framework O FRAMEWORK!!!
    5. 8. Framework COMPLETO Desenvolvimento de aplicações PHP 5
    6. 9. Baixar o pacote Estrutura dediretórios (zf.sh) Configurar o bootstrap Configurar o application.ini Configurar o .conf (opcional) ck
    7. 10. CAKE - Framework para desenvolvimento RÁPIDO em PHP Última versão estável: 1.2.3.8166 PHP 4.x e 5.x
    8. 11. Vocês ainda não viram... O Framework
    9. 12. O Framework mais rápido (muito rápido mesmo)
    10. 13. 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
    11. 14. Framework de verdade é esse daqui!
    12. 15. Instalação e Configuração... - Sandbox - Pear - Donwload do pacote
    13. 16. Configuração baseada em arquivos yaml...
    14. 17. Arquitetura... e X treme P rogramming
    15. 18. MENSAGEM SUBLIMINAR ZEND FRAMEWORK É O MELHOR!!!
    16. 19. Como o symfony ajuda o desenvolvimento ágil?
    17. 20. Potente gerador de código...
    18. 21. Potente gerador de código... ci
    19. 22. Arquitetura: simples... e completa
    20. 23. Acoplamento,extensão
    21. 24. Curva de aprendizado...
    22. 25. Curva de aprendizado... -tem tudo no user guide -video tutoriais -fórum zf
    23. 27. LIBERDADE!!!
    24. 28. ORM DAO Active Record
    25. 29. class Usuarios extends Zend_Db_Table { protected $_name = "usuarios"; } ci
    26. 30. MENSAGEM SUBLIMINAR USE O ZEND FRAMEWORK!!
    27. 31. Acesso a dados e ORM: *Active Record à disposição Leitura fácil: $this->db->get("tabela");// SELECT * FROM tabela
    28. 32. 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
    29. 33. Acesso a Dados e ORM...
    30. 34. symfony propel:build-schema symfony propel:build-model symfony doctrine:build-schema symfony doctrine:build-model
    31. 35. Formulários e Validações...
    32. 36. - sfForm - sfFormPropel - sfFormDoctrine - sfValidator sfValidatorDate sfValidatorDateRange sfValidatorEmail sfValidatorNumber sfValidatorInteger sfValidatorString sfCallbackValidator
    33. 37. symfony propel:build-forms symfony doctrine:build-forms zf
    34. 38. Zend_Form Zend_Form_Element_* Validações XSS e SQL Injection Zend_Validation ci
    35. 39. MENSAGEM SUBLIMINAR CAKE FAZ MAL SAÚDE!!!
    36. 40. Formulários e validações
    37. 41. Formulários: helpers para tags html echo form_input('user',''); echo form_password('pass','') echo form_textarea('texto','') echo form_checkbox('confirma', '1', TRUE);
    38. 42. Validações: $rules['user'] = "required"; $rules['pass'] = "required"; $rules['idade'] = "min_value"; $rules['email'] = "valid_email";
    39. 43. 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');
    40. 44. Cache de páginas: $this­>output­>cache(60);//Controller Utiliza o sistema de arquivos: system/cache zf
    41. 45. Zend_Cache Backend Arquivo Banco de Dados Xcache APC Memcache ...
    42. 46. Zend_Cache Frontend Saída de Dados ( Output ) Funções Objetos Páginas ... sf
    43. 47. MENSAGEM SUBLIMINAR SYMFONY CAUSA IMPOTÊNCIA
    44. 48. Cache... - sfAPCCache, - sfEAcceleratorCache - sfMemcacheCache - sfSQLiteCache - sfXCacheCache
    45. 49. Segurança...
    46. 50. Autenticação... Classe: sfUser Métodos: setAuthenticated() isAuthenticated()
    47. 51. Autorização... Classe: sfUser Métodos: addCredential() hasCredential( ) zf
    48. 52. Segurança mirrada...
    49. 53. Zend_Acl Papéis ( Roles ) Recursos ( Resources ) Zend_Auth Banco de Dados HTTP LDAP Digest OpenID ci
    50. 54. MENSAGEM SUBLIMINAR CODE IGNITER BAIXA O QI
    51. 55. Segurança: a classe input $dados = $this->input->xss_clean($dados);
    52. 56. 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'
    53. 57. 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
    54. 58. Localização... Internacionalização...
    55. 59. 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 ...
    56. 60. Armazenar tradução no banco de dados: product ( id, price) product_i18n (id, culture, name)
    57. 61. $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
    58. 62. Zend_Locale Zend_Date Zend_Currency Zend_Measure_*
    59. 63. Zend_Translate Array CSV INI Gettext ...
    60. 64. Documentação Completa Quick Start API Guia de Referência
    61. 65. e tem “documentações”...
    62. 66. Comunidade Ativa Contribuições
    63. 67. e tem “comunidades”... ci
    64. 68. Documentação e Comunidade sf
    65. 69. Documentação e Comunidade...
    66. 70. http://www.symfony-project.org
    67. 71. Quem aqui usa Symfony?
    68. 74. ci
    69. 75. Quem aqui usa Code Igniter?
    70. 76. zf
    71. 77. Profissionais Zend Framework
    72. 78. Super Profissional Zend Framework
    73. 79. Quem usa Zend Framework?
    74. 80. MENSAGEM SUBLIMINAR LEMBRE-SE... CHUCK NORRIS USA ZEND
    75. 81. Tudo Igual... PHP 5 OO MVC ORM Formulários e Validações Cache I18n e l10n ...
    76. 82. Aumento de Produtividade
    77. 84. Escolha um... E comece!!!
    78. 85. Mas claro que o Zend Framework é o melhor!!!
    79. 86. Obrigado!!!
    80. 87. [email_address] http://www.phpba.com.br [email_address] [email_address] [email_address] [email_address] [email_address] [email_address] [email_address]

    ×