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

Desfrutando os Componentes do Zend Framework

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

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/