Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Desfrutando os Componentes do Zend Framework

Desfrutando os Componentes do Zend Framework

Palestra apresentada na Latinoware 2010, sobre os principais componentes do Zend Framework, novos componentes e a listagem completa dos componentes até a data da apresentação.

Avatar for Fernando Geraldo Mantoan

Fernando Geraldo Mantoan

June 14, 2012
Tweet

Other Decks in Programming

Transcript

  1. 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
  2. Filosofia do PHP (Simplicidade) Boas práticas de Orientação a Objetos

    Testes Unitários Documentação Completa Biblioteca de Classes
  3. Zend_Acl Autorização Lista de Controle de Acesso (ACL) Objetos protegidos

    Papéis Zend_Acl_Resource Zend_Acl_Role Assertions
  4. Zend_Db Interface SQL Zend_Db_Adapter Db2, Mysqli, Oracle, Pdo (Mysql, Pgsql

    etc.) Factory fetchall,insert, quote (normal, identifier, into)
  5. 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()
  6. 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()
  7. 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
  8. 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
  9. 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()
  10. 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
  11. 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
  12. 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)
  13. Decorators Configuram a renderização dos elementos Podem adicionar conteúdo antes

    ou depois dos elementos Exemplo: HTML tag <dd> antes de um <input />
  14. 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]
  15. 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)
  16. Zend_Registry Container de objetos no escopo da aplicação Zend_Registry::set($chave, $objeto)

    Zend_Registry::get($chave) Zend_Registry::isRegistered($chave)
  17. 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
  18. Zend_Translate Tradução de conteúdo em vários idiomas Adapters: Array, Csv,

    Gettext, Qt, Tbx, Tmx, Xliff, XmlTm addTranslation(), _(), setLocale(), getLocale(),
  19. Zend_Date API para manipulação de datas e tempos Zend_Date::now() get(),

    set(), add(), sub(), compare() Completamente internacionalizada (130 idiomas)
  20. 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
  21. MVC

  22. 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
  23. 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
  24. 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()
  25. 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
  26. 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
  27. Zend_Cache Maneira genérica de se fazer caching de dados. Frontends:

    Output, File, Function, Class, Page Backends: Sqlite, Memcached, Apc, ZendPlatform Factory
  28. 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
  29. Zend_Feed Provê funcionalidades para consumir feeds RSS e Atom import(),

    importFile(), importString(), findFeeds() Zend_Feed_Rss Zend_Feed_Atom Zend_Feed_Reader
  30. 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
  31. 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
  32. 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!
  33. 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
  34. Zend_Cloud Oferece suporte aos principais players de Cloud Computing Amazon

    SimpleDB Windows Azure Amazon SQS Zend Queue Amazon S3 Nirvanix
  35. 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
  36. 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
  37. 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
  38. 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.
  39. 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
  40. 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;
  41. 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”
  42. 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
  43. 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.
  44. • 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/