SlideShare uma empresa Scribd logo
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 Engineer Zend Framework
●Analista de Sistemas – ApolloTI
●Membro e fundador do grupo PHPFoz
●(Tentando ser) Contribuidor do Zend Framework
Zend Framework
Desfrutando os Componentes do Zend Framework
Filosofia do PHP (Simplicidade)
Boas práticas de Orientação a
Objetos
Testes Unitários
Documentação Completa
Biblioteca de Classes
Desfrutando os Componentes do Zend Framework
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, identifier, into)
Zend_Db_Statement
Zend_Db_Adapter::query($sql, $bind)
Zend_Db_Statement::execute($bind)
PDOStatement
Statement preparado e
executado
Zend_Db_Statement::fetch()
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()
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()
Exemplos
Busca
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
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, Custom
Stream, Db, Mock
Bloqueia a escrita de uma
mensagem
Simple, Xml
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
setBodyText(), setBodyHtml()
setFrom(), addTo(), addCc(),
addBcc(), setSubject(), send()
Anexos:
createAttachment()
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()
Alnum, Alpha, BaseName, Digits, Dir,
HtmlEntities, Int, RealPath,
StringToLower, StringToUpper,
StringTrim, StripTags
Filter Chain
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
Exemplos
Formulários
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)
Zend_Form_Element
Button, Hidden, Image, Radio, Reset,
Submit, Password, Text, Textarea,
Checkbox, Select
Zend_Filter Zend_Validate
Decorators
Configuram a renderização dos
elementos
Podem adicionar conteúdo antes ou
depois dos elementos
Exemplo: HTML tag <dd> antes de um
<input />
Exemplos
Infraestrutura
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]
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)
Zend_Registry Container de objetos no
escopo da aplicação
Zend_Registry::set($chave, $objeto)
Zend_Registry::get($chave)
Zend_Registry::isRegistered($chave)
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
Zend_Loader Auxilia a carregar
arquivos dinamicamente
Zend_Loader::loadFile($filename)
Zend_Loader::loadClass($class)
Substitui '_' por '/' e adiciona '.php' ao
final
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
Exemplos
Internacionalização
Zend_Locale Linguagem e região do
usuário
Formatação, normalização, conversões
BROWSER, ENVIRONMENT,
FRAMEWORK
getLanguage(), getRegion()
Zend_Translate
Tradução de
conteúdo em vários
idiomas
Adapters:
Array, Csv, Gettext, Qt, Tbx, Tmx, Xliff,
XmlTm
addTranslation(), _(), setLocale(),
getLocale(),
Zend_Date
API para manipulação
de datas e tempos
Zend_Date::now()
get(), set(), add(), sub(), compare()
Completamente
internacionalizada (130 idiomas)
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
Exemplos
MVC
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
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
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()
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
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
Exemplos
Performance
Zend_Cache Maneira genérica de se
fazer caching de dados.
Frontends:
Output, File, Function, Class, Page
Backends:
Sqlite, Memcached, Apc, ZendPlatform
Factory
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
Exemplos
Webservices
Zend_Feed
Provê funcionalidades
para consumir feeds
RSS e Atom
import(), importFile(), importString(),
findFeeds()
Zend_Feed_Rss Zend_Feed_Atom
Zend_Feed_Reader
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
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
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!
Miscelânea
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
Zend_Cloud
Oferece suporte aos
principais players de
Cloud Computing
Amazon SimpleDB
Windows Azure
Amazon SQS
Zend Queue
Amazon S3
Nirvanix
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
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
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
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.
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
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)
Sem short tags (<? ?>, <?= ?>)
Constantes, alfanumérico e
underscore, maiúsculo, somente em
classes e com const. Exemplo:
const UPPER_CASE = 0;
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”
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
Desfrutando os Componentes do Zend Framework
Obrigado!
contato@fernandomantoan.comcontato@fernandomantoan.com
http://fernandomantoan.comhttp://fernandomantoan.com
@fernandomantoan@fernandomantoan
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.
● 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/

Mais conteúdo relacionado

PDF
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
PDF
J530 3 jndi
PDF
Minicurso de Segurança em Java EE 7
PDF
Curso de WebServlets (Java EE 7)
PDF
Fundamentos de JDBC
PDF
Curso de Java Persistence API (JPA) (Java EE 7)
PDF
API de segurança do Java EE 8
PDF
Sistemas Distribuídos - Comunicação Distribuída - EJB
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
J530 3 jndi
Minicurso de Segurança em Java EE 7
Curso de WebServlets (Java EE 7)
Fundamentos de JDBC
Curso de Java Persistence API (JPA) (Java EE 7)
API de segurança do Java EE 8
Sistemas Distribuídos - Comunicação Distribuída - EJB

Mais procurados (11)

PDF
Fundamentos de Objetos Remotos
PDF
Introdução a Linguagem Java
PPTX
PHP robusto com Zend Framework
PDF
Introdução a JPA (2010)
PDF
Apache NiFi com postgresql
PDF
Integração com Banco de Dados
PDF
PDF
Spring Data Jpa
PDF
Java 08
PPT
Bd sql (1)
Fundamentos de Objetos Remotos
Introdução a Linguagem Java
PHP robusto com Zend Framework
Introdução a JPA (2010)
Apache NiFi com postgresql
Integração com Banco de Dados
Spring Data Jpa
Java 08
Bd sql (1)
Anúncio

Destaque (10)

PDF
Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...
PDF
Desmistificando o Framework da Zend
PPTX
Proteja sua aplicação com o zend framework 2
ODP
Trabalhando com eventos e serviços no Zend Framework 2
PDF
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
PDF
Entendendo a Arquitetura MVC do Zend Framework
KEY
Desenvolvendo Aplicações com Zend Framework
PDF
Banco de Dados - MySQL Basico
PDF
PHP e MySQL para iniciantes
PDF
Capítulo 04 - Persistência de dados com SQLite
Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...
Desmistificando o Framework da Zend
Proteja sua aplicação com o zend framework 2
Trabalhando com eventos e serviços no Zend Framework 2
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Entendendo a Arquitetura MVC do Zend Framework
Desenvolvendo Aplicações com Zend Framework
Banco de Dados - MySQL Basico
PHP e MySQL para iniciantes
Capítulo 04 - Persistência de dados com SQLite
Anúncio

Semelhante a Desfrutando os Componentes do Zend Framework (20)

PPT
ZF Básico - 1. Introdução
ODP
Zend Framework - PHPSP - 2009
PPTX
Conhecendo o Zend Framework
PPTX
Gestão automática de configuração usando puppet
PDF
O que esperar do Zend Framework 2
PDF
Framework PHP Zend e MVC
PDF
Introdução ao Zend Framework 2
PDF
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
PPSX
Cakephp 2.0 - O que mudou
PPT
Desenvolvimento Agil Com Doctrine Orm
PDF
Analise frameworks php
PPT
Palestra Plataforma .NET na ETEC Marília
PDF
Desenvolvimento ágil com Kohana framework
PDF
Desenvolvimento Web com Simfony Framework.
PPTX
Terraform.pptx
PDF
PHP e Redis
PDF
PHP like a super hero
PDF
Webservices e Computação em Nuvem com PHP
PPTX
Certificação Zend Framework
ZF Básico - 1. Introdução
Zend Framework - PHPSP - 2009
Conhecendo o Zend Framework
Gestão automática de configuração usando puppet
O que esperar do Zend Framework 2
Framework PHP Zend e MVC
Introdução ao Zend Framework 2
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
Cakephp 2.0 - O que mudou
Desenvolvimento Agil Com Doctrine Orm
Analise frameworks php
Palestra Plataforma .NET na ETEC Marília
Desenvolvimento ágil com Kohana framework
Desenvolvimento Web com Simfony Framework.
Terraform.pptx
PHP e Redis
PHP like a super hero
Webservices e Computação em Nuvem com PHP
Certificação Zend Framework

Último (19)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula 18 - Manipulacao De Arquivos python
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
COBITxITIL-Entenda as diferença em uso governança TI
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
Processos na gestão de transportes, TM100 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Apple Pippin Uma breve introdução. - David Glotz
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx

Desfrutando os Componentes do Zend Framework