Desfrutando os Componentes do
Zend Framework
Fernando Geraldo Mantoan
Fernando Geraldo Mantoan
●Bacharel em Ciência da Computação – CESUFOZ
●Zend Certified Engineer PHP5
●Zend Certified Engine...
Zend Framework
Filosofia do PHP (Simplicidade)
Boas práticas de Orientação a
Objetos
Testes Unitários
Documentação Completa
Biblioteca de...
Autenticação & Autorização
Zend_Auth
Autenticação
Adapters (LDAP,
HTTP, BD)
Zend_Auth_Result
Persistência de identidade (session)
Singleton
Zend_Acl
Autorização
Lista de Controle
de Acesso (ACL)
Objetos
protegidos
Papéis
Zend_Acl_Resource Zend_Acl_Role
Assertions
Exemplos
Banco de Dados
Zend_Db
Interface SQL
Zend_Db_Adapter
Db2, Mysqli, Oracle,
Pdo (Mysql, Pgsql
etc.)
Factory
fetchall,insert, quote
(normal,...
Zend_Db_Statement
Zend_Db_Adapter::query($sql, $bind)
Zend_Db_Statement::execute($bind)
PDOStatement
Statement preparado e...
Zend_Db_Select
SQL Select Pedaços da consulta
por métodos OO
Auto quoting Fluent Interface
Zend_Db_Adapter::select()
from(...
Zend_Db_Table
Table Data Gateway
Row Data Gateway
Nível de Tabela:
Zend_Db_Table_Abstract
Nível de linha:
Zend_Db_Table_Ro...
Exemplos
Busca
Zend_Search_Lucene
Apache Lucene
Buscas com ranking
Buscas com caracteres coringas,
caracteres de proximidade, intervalo,
...
Vários tipos de campos
Índice, armazenado em arquivo binário
Otimização de Índices
Charset padrão: UTF-8
Exemplos
Diagnóstico & Manutenção
Zend_Log Logging de aplicações
Writer
Filter
Formatter
Prioridades:
EMERG, ALERT, CRIT, ERR, WARN,
NOTICE, INFO, DEBUG, Cu...
Zend_Debug
Zend_Debug::dump($var,
$label=null, $echo=true)
var_dump()
Informações sobre uma variável
Imprime ou retorna
Exemplos
Email
Zend_Mail Envio e Leitura de
E-mails
Envio:
Zend_Mail_Transport_Smtp
Zend_Mail_Transport_Sendmail
Fluent Interface
setBody...
Leitura de E-mails
Mbox, Maildir, Pop3, IMAP
Zend_Mail_Message
Zend_Mail_Storage_Folder_Interface
Maildir, Mbox
Exemplos
Filtragem & Validação
Zend_Filter Transformação de
entradas de dados
Filtros comuns necessários para
aplicações web
Zend_Filter_Interface
filter...
Zend_Validate Validação de dados
Mensagens de erro sobre falhas de
validação
Zend_Validate_Interface
isValid()
getMessages...
Exemplos
Formulários
Zend_Form
Filtragem e validação de dados
Ordenação de elementos, renderização
com escaping
Agrupamento de elementos
(Displ...
Zend_Form_Element
Button, Hidden, Image, Radio, Reset,
Submit, Password, Text, Textarea,
Checkbox, Select
Zend_Filter Zend...
Decorators
Configuram a renderização dos
elementos
Podem adicionar conteúdo antes ou
depois dos elementos
Exemplo: HTML ta...
Exemplos
Infraestrutura
Zend_Config
Simplifica o acesso e a
utilização de dados de
configuração
Formatos: Ini, Json, Xml, Yaml
Hierarquia de chave...
Zend_Exception
Classe base para
todas as exceções do
ZF
Utilizada para um bloco catch mais
generalizado
Implementa o supor...
Zend_Registry Container de objetos no
escopo da aplicação
Zend_Registry::set($chave, $objeto)
Zend_Registry::get($chave)
Z...
Zend_Version Contém a versão
atual do framework
Zend_Version::VERSION
Zend_Version::compareVersion($version)
-1 = $version...
Zend_Loader Auxilia a carregar
arquivos dinamicamente
Zend_Loader::loadFile($filename)
Zend_Loader::loadClass($class)
Subs...
Zend_Session
Ajuda a gerenciar e
preservar dados de
sessão
Sessões com namespace:
Zend_Session_Namespace
Zend_Session::sta...
Exemplos
Internacionalização
Zend_Locale Linguagem e região do
usuário
Formatação, normalização, conversões
BROWSER, ENVIRONMENT,
FRAMEWORK
getLanguage...
Zend_Translate
Tradução de
conteúdo em vários
idiomas
Adapters:
Array, Csv, Gettext, Qt, Tbx, Tmx, Xliff,
XmlTm
addTransla...
Zend_Date
API para manipulação
de datas e tempos
Zend_Date::now()
get(), set(), add(), sub(), compare()
Completamente
inte...
Zend_Currency
I18N para moedas,
representação de
dinheiro, formatação,
cálculo etc.
Suporte a mais de 100 moedas
Cálculo d...
Exemplos
MVC
Zend_Application
Facilita o processo
de bootstrapping
da aplicação
Recursos
Reutilizáveis
Checagem de
dependências
Classes...
Zend_Controller
Coração do sistema
MVC do ZF
Front Controller Action Helpers e
Plugins
URLs amigáveis (em
conjunto com o r...
Zend_Controller
Classe base:
Zend_Controller_Action
Métodos possuem como sufixo “Action”
indexAction()
Rota padrão de erro...
Zend_View
Camada de
apresentação de dados
(HTML)
Script por controller/action, exemplo:
scripts/usuario/listar.phtml
View ...
Zend_Layout Two step view
design pattern
Script de visão
global
Delimitadores
definem onde
exibir conteúdo,
menus, etc.
Ha...
Exemplos
Performance
Zend_Cache Maneira genérica de se
fazer caching de dados.
Frontends:
Output, File, Function, Class, Page
Backends:
Sqlite,...
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 bac...
Exemplos
Webservices
Zend_Feed
Provê funcionalidades
para consumir feeds
RSS e Atom
import(), importFile(), importString(),
findFeeds()
Zend_Fe...
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 ...
Zend_Rest
Suporta o consumo e
criação de serviços Rest
Métodos Remotos = Métodos Nativos
get(), post(), put(), delete()
Se...
Zend_Service
Classe base para
implementações de
web services
Implementação de serviços populares:
Akismet, Amazon, Audiosc...
Miscelânea
Zend_Amf
Provê suporte ao
formato Action
Message Format da
Adobe
Gateway
Zend_Amf_Server
Mapeamento de requisições para
ob...
Zend_Cloud
Oferece suporte aos
principais players de
Cloud Computing
Amazon SimpleDB
Windows Azure
Amazon SQS
Zend Queue
A...
Zend_Json
Facilita a serialização
entre PHP e JSON e a
decodificação de
JSON para PHP
Converte objetos PHP para objetos
JS...
Zend_Paginator
Componente flexível
para paginação de
coleções de dados e
apresentação ao
usuário
Adapters:
Array, DbSelect...
Zend_Test
Facilita os testes
unitários de aplicações
escritas com o ZF
Testes de todo MVC
Suporte aos TestCases do PHPUnit...
Zend_Tool
Provê recursos RAD para
agilizar a criação de
aplicações ZF
Uso via Command Line Interface (CLI)
Pacote separado...
Mais Componentes
●Zend_Barcode
●Zend_Captcha
●Zend_CodeGenerator
●Zend_Config_Writer
●Zend_Console_Getopt
●Zend_Dojo
●Zend...
Coding Standards
Arquivo só com PHP fica sem “?>”
Identação com 4 espaços, nunca tabs
80 caracteres por linha
Linhas terminam com n (0x0A)
...
Nome de Classes mapeados para o
diretório
DAO_User_156 = DAO/User/156.php
Várias palavras: PessoaFisica
Arquivos: alfanumé...
Estrutura condicional:
if ($x == 0) {
$x++;
} else if ($x < 5) {
} else {
}
Atributos e variáveis: alfanumérico,
underscor...
Obrigado!
contato@fernandomantoan.comcontato@fernandomantoan.com
http://fernandomantoan.comhttp://fernandomantoan.com
@fer...
Referências:
●Zend Framework Reference Guide
●Zend Framework Certification Study
Guide
●Rob Allen – Zend Framework
Certifi...
● http://www.fantom-xp.com/wallpapers/30/Strawberry_Summer.jpg
● http://www.flickr.com/photos/claudio_ar/2225929813/sizes/...
Desfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend Framework
Próximos SlideShares
Carregando em…5
×

Desfrutando os Componentes do Zend Framework

21.624 visualizações

Publicada em

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

Publicada em: Tecnologia
1 comentário
10 gostaram
Estatísticas
Notas
  • 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 -----------------------------------------------------------
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
Sem downloads
Visualizações
Visualizações totais
21.624
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12.101
Ações
Compartilhamentos
0
Downloads
156
Comentários
1
Gostaram
10
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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/

×