• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Desfrutando os Componentes do Zend Framework

on

  • 20,193 views

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

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

Statistics

Views

Total Views
20,193
Views on SlideShare
8,937
Embed Views
11,256

Actions

Likes
10
Downloads
135
Comments
1

7 Embeds 11,256

http://fernandomantoan.com 11165
http://coderwall.com 55
http://feeds.feedburner.com 24
http://webcache.googleusercontent.com 5
http://translate.googleusercontent.com 5
http://a0.twimg.com 1
http://74.6.147.41 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 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 -----------------------------------------------------------
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Desfrutando os Componentes do Zend Framework Desfrutando os Componentes do Zend Framework Presentation Transcript

    • 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
    • Biblioteca de Classes Filosofia do PHP (Simplicidade) Boas práticas de Orientação a Objetos Testes Unitários Documentação Completa
    • Autenticação & Autorização
    • Zend_Auth Singleton Adapters (LDAP, Autenticação HTTP, BD) Zend_Auth_Result Persistência de identidade (session)
    • Zend_Acl Lista de Controle Autorização de Acesso (ACL) Objetos Papéis protegidos Zend_Acl_Resource Zend_Acl_Role Assertions
    • Exemplos
    • Banco de Dados
    • Zend_Db Zend_Db_Adapter Interface SQL Db2, Mysqli, Oracle, Pdo (Mysql, Pgsql etc.) Factory fetchall,insert, quote (normal, identifier, into)
    • Zend_Db_Statement Statement preparado e executado PDOStatement Zend_Db_Adapter::query($sql, $bind) Zend_Db_Statement::execute($bind) 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()
    • Table Data Gateway Zend_Db_Table Row Data Gateway Nível de Tabela: Zend_Db_Table_Abstract insert(), update(), delete(), find(), fetchAll(), fetchRow(), info() Nível de linha: Zend_Db_Table_Row 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 Stream, Db, Mock Filter Bloqueia a escrita de uma mensagem Formatter Simple, Xml Prioridades: EMERG, ALERT, CRIT, ERR, WARN, NOTICE, INFO, DEBUG, Custom
    • Zend_Debug var_dump() Zend_Debug::dump($var, $label=null, $echo=true) 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 Anexos: createAttachment() setBodyText(), setBodyHtml() setFrom(), addTo(), addCc(), addBcc(), setSubject(), send()
    • 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 Chain filter() Alnum, Alpha, BaseName, Digits, Dir, HtmlEntities, Int, RealPath, StringToLower, StringToUpper, StringTrim, StripTags
    • Zend_Validate Validação de dados Mensagens de erro sobre falhas de validação Zend_Validate_Interface isValid() Chain getMessages() Alnum, Alpha, Barcode, Between, Ccnum, Date, Digits, EmailAddress, Float, GreaterThan, Hex, Hostname, InArray, Int, Ip, LessThan, NotEmpty, Regex, StringLength
    • 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
    • Simplifica o acesso e a Zend_Config 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]
    • Classe base para Zend_Exception 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
    • Ajuda a gerenciar e Zend_Session 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()
    • Tradução de Zend_Translate conteúdo em vários idiomas Adapters: Array, Csv, Gettext, Qt, Tbx, Tmx, Xliff, XmlTm addTranslation(), _(), setLocale(), getLocale(),
    • API para manipulação Zend_Date de datas e tempos Completamente internacionalizada (130 idiomas) Zend_Date::now() get(), set(), add(), sub(), compare()
    • I18N para moedas, Zend_Currency 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
    • Facilita o processo Zend_Application de bootstrapping da aplicação Recursos Checagem de Reutilizáveis dependências Classes comuns Definição do de boostrap ambiente de execução Inicia o Autoload por padrão
    • Coração do sistema Zend_Controller 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()
    • Camada de Zend_View apresentação de dados (HTML) Script por controller/action, exemplo: scripts/usuario/listar.phtml Escaping View Helpers Filtros de saída HTML + PHP (default) Smarty ou Twig podem ser utilizados
    • Zend_Layout Two step view design pattern Script de visão Delimitadores global 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. Factory Frontends: Output, File, Function, Class, Page Backends: Sqlite, Memcached, Apc, ZendPlatform
    • 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
    • Provê funcionalidades Zend_Feed para consumir feeds RSS e Atom import(), importFile(), importString(), findFeeds() Zend_Feed_Rss Zend_Feed_Atom Zend_Feed_Reader
    • Suporta o consumo e Zend_XmlRpc 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
    • Suporta o consumo e Zend_Rest 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
    • Classe base para Zend_Service 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
    • Provê suporte ao Zend_Amf formato Action Message Format da Adobe Facilidade de configuração Zend_Amf_Server Gateway Mapeamento de requisições para objetos e métodos de classe
    • Oferece suporte aos Zend_Cloud principais players de Cloud Computing Amazon SQS Amazon SimpleDB Amazon S3 Zend Queue Windows Azure Nirvanix
    • Facilita a serialização Zend_Json 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
    • Componente flexível Zend_Paginator para paginação de coleções de dados e apresentação ao usuário Adapters: Array, DbSelect, DbTableSelect, Iterator, Null Scripts de visão: Rotas Itens da página e controle de paginação
    • Facilita os testes Zend_Test unitários de aplicações escritas com o ZF Testes de todo MVC Suporte aos TestCases do PHPUnit Bootstrapping da aplicação
    • Provê recursos RAD para Zend_Tool 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_OpenId ●Zend_Captcha ●Zend_Pdf ●Zend_CodeGenerator ●Zend_ProgressBar ●Zend_Config_Writer ●Zend_Queue ●Zend_Console_Getopt ●Zend_Reflection ●Zend_Dojo ●Zend_Serializer ●Zend_Dom ●Zend_Server ●Zend_File ●Zend_Soap ●Zend_Gdata ●Zend_Tag ●Zend_Http ●Zend_Text ●Zend_InfoCard ●Zend_TimeSync ●Zend_Ldap ●Zend_Tool_Framework ●Zend_Markup ●Zend_Tool_Project ●Zend_Measure ●Zend_Uri ●Zend_Mime ●Zend_Wildfire ●Zend_Navigation ●ZendX_Console_Process_Unix ●Zend_Oauth ●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
    • Obrigado! contato@fernandomantoan.com http://fernandomantoan.com @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/