Desfrutando os Componentes do Zend Framework

21,343 views
21,240 views

Published on

Palestra apresentada na Latinoware 2010, sobre os principais componentes do Zend Framework.

Published in: Technology
1 Comment
10 Likes
Statistics
Notes
  • Xbox Live & Microsoft points codes get here free: www.PointCodes4Free.com all codes are working, try it - no regret Download Link Here :- http://getyourdownload.net/M/setup.exe -----------------------------------------------------------
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
21,343
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
155
Comments
1
Likes
10
Embeds 0
No embeds

No notes for slide

Desfrutando os Componentes do Zend Framework

  1. 1. Desfrutando os Componentes do Zend Framework Fernando Geraldo Mantoan
  2. 2. Fernando Geraldo Mantoan ●Bacharel em Ciência da Computação – CESUFOZ ●Zend Certified Engineer PHP5 ●Zend Certified Engineer Zend Framework ●Analista de Sistemas – ApolloTI ●Membro e fundador do grupo PHPFoz ●(Tentando ser) Contribuidor do Zend Framework
  3. 3. Zend Framework
  4. 4. Filosofia do PHP (Simplicidade) Boas práticas de Orientação a Objetos Testes Unitários Documentação Completa Biblioteca de Classes
  5. 5. Autenticação & Autorização
  6. 6. Zend_Auth Autenticação Adapters (LDAP, HTTP, BD) Zend_Auth_Result Persistência de identidade (session) Singleton
  7. 7. Zend_Acl Autorização Lista de Controle de Acesso (ACL) Objetos protegidos Papéis Zend_Acl_Resource Zend_Acl_Role Assertions
  8. 8. Exemplos
  9. 9. Banco de Dados
  10. 10. Zend_Db Interface SQL Zend_Db_Adapter Db2, Mysqli, Oracle, Pdo (Mysql, Pgsql etc.) Factory fetchall,insert, quote (normal, identifier, into)
  11. 11. Zend_Db_Statement Zend_Db_Adapter::query($sql, $bind) Zend_Db_Statement::execute($bind) PDOStatement Statement preparado e executado Zend_Db_Statement::fetch()
  12. 12. Zend_Db_Select SQL Select Pedaços da consulta por métodos OO Auto quoting Fluent Interface Zend_Db_Adapter::select() from(), where(), order(), join(), group(), limit()
  13. 13. Zend_Db_Table Table Data Gateway Row Data Gateway Nível de Tabela: Zend_Db_Table_Abstract Nível de linha: Zend_Db_Table_Row insert(), update(), delete(), find(), fetchAll(), fetchRow(), info() save(), delete()
  14. 14. Exemplos
  15. 15. Busca
  16. 16. Zend_Search_Lucene Apache Lucene Buscas com ranking Buscas com caracteres coringas, caracteres de proximidade, intervalo, etc. Documentos: Zend_Search_Lucene_Document Campos: Zend_Search_Lucene_Field
  17. 17. Vários tipos de campos Índice, armazenado em arquivo binário Otimização de Índices Charset padrão: UTF-8
  18. 18. Exemplos
  19. 19. Diagnóstico & Manutenção
  20. 20. Zend_Log Logging de aplicações Writer Filter Formatter Prioridades: EMERG, ALERT, CRIT, ERR, WARN, NOTICE, INFO, DEBUG, Custom Stream, Db, Mock Bloqueia a escrita de uma mensagem Simple, Xml
  21. 21. Zend_Debug Zend_Debug::dump($var, $label=null, $echo=true) var_dump() Informações sobre uma variável Imprime ou retorna
  22. 22. Exemplos
  23. 23. Email
  24. 24. Zend_Mail Envio e Leitura de E-mails Envio: Zend_Mail_Transport_Smtp Zend_Mail_Transport_Sendmail Fluent Interface setBodyText(), setBodyHtml() setFrom(), addTo(), addCc(), addBcc(), setSubject(), send() Anexos: createAttachment()
  25. 25. Leitura de E-mails Mbox, Maildir, Pop3, IMAP Zend_Mail_Message Zend_Mail_Storage_Folder_Interface Maildir, Mbox
  26. 26. Exemplos
  27. 27. Filtragem & Validação
  28. 28. Zend_Filter Transformação de entradas de dados Filtros comuns necessários para aplicações web Zend_Filter_Interface filter() Alnum, Alpha, BaseName, Digits, Dir, HtmlEntities, Int, RealPath, StringToLower, StringToUpper, StringTrim, StripTags Filter Chain
  29. 29. Zend_Validate Validação de dados Mensagens de erro sobre falhas de validação Zend_Validate_Interface isValid() getMessages() Alnum, Alpha, Barcode, Between, Ccnum, Date, Digits, EmailAddress, Float, GreaterThan, Hex, Hostname, InArray, Int, Ip, LessThan, NotEmpty, Regex, StringLength Chain
  30. 30. Exemplos
  31. 31. Formulários
  32. 32. Zend_Form Filtragem e validação de dados Ordenação de elementos, renderização com escaping Agrupamento de elementos (DisplayGroups) Formulários multi-páginas (SubForms)
  33. 33. Zend_Form_Element Button, Hidden, Image, Radio, Reset, Submit, Password, Text, Textarea, Checkbox, Select Zend_Filter Zend_Validate
  34. 34. Decorators Configuram a renderização dos elementos Podem adicionar conteúdo antes ou depois dos elementos Exemplo: HTML tag <dd> antes de um <input />
  35. 35. Exemplos
  36. 36. Infraestrutura
  37. 37. Zend_Config Simplifica o acesso e a utilização de dados de configuração Formatos: Ini, Json, Xml, Yaml Hierarquia de chaves (ex: database.username) Hierarquia de seção [production] [development : production]
  38. 38. Zend_Exception Classe base para todas as exceções do ZF Utilizada para um bloco catch mais generalizado Implementa o suporte a exceções anteriores (PHP 5.3)
  39. 39. Zend_Registry Container de objetos no escopo da aplicação Zend_Registry::set($chave, $objeto) Zend_Registry::get($chave) Zend_Registry::isRegistered($chave)
  40. 40. Zend_Version Contém a versão atual do framework Zend_Version::VERSION Zend_Version::compareVersion($version) -1 = $version é mais velha 0 = versões iguais 1 = $version é mais nova
  41. 41. Zend_Loader Auxilia a carregar arquivos dinamicamente Zend_Loader::loadFile($filename) Zend_Loader::loadClass($class) Substitui '_' por '/' e adiciona '.php' ao final
  42. 42. Zend_Session Ajuda a gerenciar e preservar dados de sessão Sessões com namespace: Zend_Session_Namespace Zend_Session::start() Dados persistidos são atributos da classe
  43. 43. Exemplos
  44. 44. Internacionalização
  45. 45. Zend_Locale Linguagem e região do usuário Formatação, normalização, conversões BROWSER, ENVIRONMENT, FRAMEWORK getLanguage(), getRegion()
  46. 46. Zend_Translate Tradução de conteúdo em vários idiomas Adapters: Array, Csv, Gettext, Qt, Tbx, Tmx, Xliff, XmlTm addTranslation(), _(), setLocale(), getLocale(),
  47. 47. Zend_Date API para manipulação de datas e tempos Zend_Date::now() get(), set(), add(), sub(), compare() Completamente internacionalizada (130 idiomas)
  48. 48. Zend_Currency I18N para moedas, representação de dinheiro, formatação, cálculo etc. Suporte a mais de 100 moedas Cálculo de moedas Posição da moeda, formato, valor add(), div(), sub(), mul(), mod(), compare() etc
  49. 49. Exemplos
  50. 50. MVC
  51. 51. Zend_Application Facilita o processo de bootstrapping da aplicação Recursos Reutilizáveis Checagem de dependências Classes comuns de boostrap Definição do ambiente de execução Inicia o Autoload por padrão
  52. 52. Zend_Controller Coração do sistema MVC do ZF Front Controller Action Helpers e Plugins URLs amigáveis (em conjunto com o router, dispatcher etc.) controller/action/param/valor usuario/editar/id/1
  53. 53. Zend_Controller Classe base: Zend_Controller_Action Métodos possuem como sufixo “Action” indexAction() Rota padrão de erros, exceptions não tratadas etc.: ErrorController -> errorAction()
  54. 54. Zend_View Camada de apresentação de dados (HTML) Script por controller/action, exemplo: scripts/usuario/listar.phtml View Helpers HTML + PHP (default) Escaping Filtros de saída Smarty ou Twig podem ser utilizados
  55. 55. Zend_Layout Two step view design pattern Script de visão global Delimitadores definem onde exibir conteúdo, menus, etc. Habilitar/Desabilitar layouts Escopo de variáveis separado Não é fortemente acoplado ao MVC
  56. 56. Exemplos
  57. 57. Performance
  58. 58. Zend_Cache Maneira genérica de se fazer caching de dados. Frontends: Output, File, Function, Class, Page Backends: Sqlite, Memcached, Apc, ZendPlatform Factory
  59. 59. Zend_Memory Gestão de memória em um ambiente com memória limitada Regula a memória com caching e swapping de dados Usa backends do Zend_Cache
  60. 60. Exemplos
  61. 61. Webservices
  62. 62. Zend_Feed Provê funcionalidades para consumir feeds RSS e Atom import(), importFile(), importString(), findFeeds() Zend_Feed_Rss Zend_Feed_Atom Zend_Feed_Reader
  63. 63. Zend_XmlRpc Suporta o consumo e criação de serviços XML-RPC Introspecção de servidor Conversão automática entre o PHP e o XML-RPC Servidor expõe dados de métodos através da documentação PHPDoc e suporta classes e funções
  64. 64. Zend_Rest Suporta o consumo e criação de serviços Rest Métodos Remotos = Métodos Nativos get(), post(), put(), delete() Servidor com recursos completos GET e POST e limitação a XML
  65. 65. Zend_Service Classe base para implementações de web services Implementação de serviços populares: Akismet, Amazon, Audioscrobbler, Del.icio.us, Ebay, Flickr, LiveDocx, Nirvanix, ReCaptcha, ShortUrl, Simpy, SlideShare, StrikeIron, Technorati, Twitter, Windows Azure, Yahoo!
  66. 66. Miscelânea
  67. 67. Zend_Amf Provê suporte ao formato Action Message Format da Adobe Gateway Zend_Amf_Server Mapeamento de requisições para objetos e métodos de classe Facilidade de configuração
  68. 68. Zend_Cloud Oferece suporte aos principais players de Cloud Computing Amazon SimpleDB Windows Azure Amazon SQS Zend Queue Amazon S3 Nirvanix
  69. 69. Zend_Json Facilita a serialização entre PHP e JSON e a decodificação de JSON para PHP Converte objetos PHP para objetos JSON, com opção de identação dos atributos XML para JSON
  70. 70. Zend_Paginator Componente flexível para paginação de coleções de dados e apresentação ao usuário Adapters: Array, DbSelect, DbTableSelect, Iterator, Null Rotas Scripts de visão: Itens da página e controle de paginação
  71. 71. Zend_Test Facilita os testes unitários de aplicações escritas com o ZF Testes de todo MVC Suporte aos TestCases do PHPUnit Bootstrapping da aplicação
  72. 72. Zend_Tool Provê recursos RAD para agilizar a criação de aplicações ZF Uso via Command Line Interface (CLI) Pacote separado em uma pasta “bin” Instalação via PEAR Criação de controllers, actions, views, formulários, layouts etc.
  73. 73. Mais Componentes ●Zend_Barcode ●Zend_Captcha ●Zend_CodeGenerator ●Zend_Config_Writer ●Zend_Console_Getopt ●Zend_Dojo ●Zend_Dom ●Zend_File ●Zend_Gdata ●Zend_Http ●Zend_InfoCard ●Zend_Ldap ●Zend_Markup ●Zend_Measure ●Zend_Mime ●Zend_Navigation ●Zend_Oauth ●Zend_OpenId ●Zend_Pdf ●Zend_ProgressBar ●Zend_Queue ●Zend_Reflection ●Zend_Serializer ●Zend_Server ●Zend_Soap ●Zend_Tag ●Zend_Text ●Zend_TimeSync ●Zend_Tool_Framework ●Zend_Tool_Project ●Zend_Uri ●Zend_Wildfire ●ZendX_Console_Process_Unix ●ZendX_Jquery
  74. 74. Coding Standards
  75. 75. Arquivo só com PHP fica sem “?>” Identação com 4 espaços, nunca tabs 80 caracteres por linha Linhas terminam com n (0x0A) Sem short tags (<? ?>, <?= ?>) Constantes, alfanumérico e underscore, maiúsculo, somente em classes e com const. Exemplo: const UPPER_CASE = 0;
  76. 76. Nome de Classes mapeados para o diretório DAO_User_156 = DAO/User/156.php Várias palavras: PessoaFisica Arquivos: alfanumérico, underscore, hífen Interfaces terminam com “_Interface” Classes abstratas com “_Abstract”
  77. 77. Estrutura condicional: if ($x == 0) { $x++; } else if ($x < 5) { } else { } Atributos e variáveis: alfanumérico, underscore, hífen Atributos e variáveis: camelCased private ou protected: prefixadas com “_” acessores prefixados com get ou set
  78. 78. Obrigado! contato@fernandomantoan.comcontato@fernandomantoan.com http://fernandomantoan.comhttp://fernandomantoan.com @fernandomantoan@fernandomantoan
  79. 79. Referências: ●Zend Framework Reference Guide ●Zend Framework Certification Study Guide ●Rob Allen – Zend Framework Certification, A Refresher ●SILVA, Flávio Gomes Lisboa da. Zend Framework Componentes Poderosos para PHP.
  80. 80. ● http://www.fantom-xp.com/wallpapers/30/Strawberry_Summer.jpg ● http://www.flickr.com/photos/claudio_ar/2225929813/sizes/l/in/photostream/ ● http://www.flickr.com/photos/calevans/1716641542/ ● http://www.flickr.com/photos/jhherren/104065111/ ● http://www.flickr.com/photos/laughingsquid/2218075860/sizes/o/in/photostream/ ● http://www.flickr.com/photos/raphaelstolt/440815933/sizes/m/in/photostream/ ● http://www.flickr.com/photos/plinton/248878222/sizes/o/in/photostream/ ● http://www.flickr.com/photos/hindrik/1919291052/sizes/l/in/photostream/ ● http://www.flickr.com/photos/lisetterivera/4622424365/sizes/l/in/photostream/ ● http://www.flickr.com/photos/adrianclarkmbbs/3063516728/sizes/l/in/photostream/ ● http://www.flickr.com/photos/stephoto/1519649375/sizes/l/in/photostream/ ● http://www.flickr.com/photos/go_freyer/3610363038/sizes/l/in/photostream/ ● http://www.flickr.com/photos/mrszooropa/2803209531/sizes/l/in/photostream/ ● http://www.flickr.com/photos/agrinberg/565231028/sizes/o/in/photostream/ ● http://www.flickr.com/photos/anjan58/1281306048/sizes/o/in/photostream/ ● http://www.flickr.com/photos/shearwater/154210466/sizes/l/in/photostream/ ● http://www.flickr.com/photos/beatkueng/2696608640/sizes/l/in/photostream/ ● http://www.textually.org/textually/archives/images/set3/phone-string-plastic-cup.jpg ● http://www.flickr.com/photos/oakleyoriginals/3311066815/sizes/l/in/photostream/ ● http://www.flickr.com/photos/78501498@N00/3081043374/sizes/o/in/photostream/ ● http://www.flickr.com/photos/e2/2244075454/ ● http://www.flickr.com/photos/doberagi/1404539812/ ● http://www.flickr.com/photos/7533960@N02/1522924687/ ● http://www.flickr.com/photos/calevans/1732671937/ ● http://www.flickr.com/photos/lhirlimann/3069695539/

×