php simples e produtivo

111
 Zend Framework PHP Simples e Produtivo @fgsl Flávio Gomes da Silva Lisboa - www.fgsl.eti.br 

Upload: flavio-lisboa

Post on 26-May-2015

5.494 views

Category:

Technology


2 download

DESCRIPTION

Palestra apresentada na TDC - The Developers Conference, em São Paulo, em 2011.

TRANSCRIPT

Page 1: PHP Simples e Produtivo

   

Zend Framework

PHP Simples e Produtivo

@fgsl

Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 

Page 2: PHP Simples e Produtivo

   

Livre distribuição

Desde que citada a fonte

@fgsl

Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 

Page 3: PHP Simples e Produtivo

   

Quem sou eu?

www.fgsl.eti.br

@fgsl

Page 4: PHP Simples e Produtivo

   

Do que vamos falar?

Simplicidade

+

Produtividade

@fgsl

Page 5: PHP Simples e Produtivo

   

Simplicidade

Mito:

Só coisas complicadas tem qualidade

@fgsl

Page 6: PHP Simples e Produtivo

   

A princípio impressiona...

A  prosopopeia  flácida  para  acalentar  bovinos inflou o volume de minha bolsa escrotal de modo que estava para derrubar, com a extremidade do membro  inferior,  o  suporte  sustentáculo  de  uma das unidades de acampamento.

@fgsl

Page 7: PHP Simples e Produtivo

   

Já ouviu isso?

Não entendi nada do que ele falou. Esse cara deve ser bom!

@fgsl

Page 8: PHP Simples e Produtivo

   

Mas era só isso...

Aquela conversa pra boi dormir estava me enchendo o saco e eu queria chutar o pau da barraca.

@fgsl

Page 9: PHP Simples e Produtivo

   

Olha quem está falando...

Qualquer  tolo  inteligente  pode  fazer  coisas grandes,  mais  complexas  e  mais  violentas.  É preciso  um  toque  de  gênio  –  e  um  pouco  de coragem – para se mover na direção oposta.

Albert Einstein

@fgsl

Page 10: PHP Simples e Produtivo

   

Olha quem está falando...

A maioria das ideias fundamentais da ciência são essencialmente  simples,  e  podem,  como  regra, ser  expressas  em  uma  linguagem  compressível para todos.

Albert Einstein

@fgsl

Page 11: PHP Simples e Produtivo

   

Essência do PHP

A  solução  mais  complexa  raramente  é  a  certa. (…)  enquanto  outras  soluções  que  nos  cercam parecem  ficar  maiores  e  mais  complexas, estamos  nos  esforçando  para  simplificar  e racionalizar o PHP (...).

Rasmus Lerdorf

@fgsl

Page 12: PHP Simples e Produtivo

   

PHP é objetivo@fgsl

Page 13: PHP Simples e Produtivo

   

PHP é eficaz@fgsl

Page 14: PHP Simples e Produtivo

   

Produtividade

O que é produtividade?

@fgsl

Page 15: PHP Simples e Produtivo

   

Não é isso, certamente...@fgsl

Page 16: PHP Simples e Produtivo

   

Talvez isso...@fgsl

Page 17: PHP Simples e Produtivo

   

Não, não, é mais que isso...@fgsl

Page 18: PHP Simples e Produtivo

   

PHP é produtivo@fgsl

Page 19: PHP Simples e Produtivo

   

Mas cuidado...@fgsl

Page 20: PHP Simples e Produtivo

   

fazer rápido X fazer bem feito

Rápido Bem feito RápidoBem feito

Rápido e bem feito

@fgsl

Page 21: PHP Simples e Produtivo

   

fazer rápido X fazer bem feito

Arrumar o escapamento

@fgsl

Page 22: PHP Simples e Produtivo

   

fazer rápido X fazer bem feito

Reaproveitar o gabinete

@fgsl

Page 23: PHP Simples e Produtivo

   

fazer rápido X fazer bem feito

Adaptar o carro para rodar na Inglaterra

@fgsl

Page 24: PHP Simples e Produtivo

   

Fatos

Fazer  algo  rápido  pode  gerar  complexidade, enquanto  fazer  algo  bem  feito  pode  gerar simplicidade.

@fgsl

Page 25: PHP Simples e Produtivo

   

Fatos

Algo  criado  para  resolver  um  problema  pode  se tornar um problema.

@fgsl

Page 26: PHP Simples e Produtivo

   

Fatos

A  situação  crítica  é  quando  você  não  consegue mudar  algo  mal  feito  por  precisar  dele  para contornar um problema maior.

@fgsl

Page 27: PHP Simples e Produtivo

   

Fatos@fgsl

Page 28: PHP Simples e Produtivo

   

Fatos

CPOP: Copy & Paste Oriented Programming

Dead Code

CBI: Cross Bug Injection

TDB: Total Destruction Button

@fgsl

Page 29: PHP Simples e Produtivo

   

O que devo fazer?@fgsl

Page 30: PHP Simples e Produtivo

   

Recomendações

Copernico Galileu Descartes

Newton

@fgsl

Page 31: PHP Simples e Produtivo

   

Recomendações@fgsl

Page 32: PHP Simples e Produtivo

   

Recomendações

Utilize a experiência de especialistas.

Repita projetos de sucesso feitos por outras pessoas.

Não reinvente a roda.                                   

@fgsl

Page 33: PHP Simples e Produtivo

   

E você pergunta...

COMO?

@fgsl

Page 34: PHP Simples e Produtivo

   

E eu respondo:

Use padrões de projetos e boas 

práticas

@fgsl

Page 35: PHP Simples e Produtivo

   

E você pergunta...

Mas os padrões são apenas um modelo de solução! Eu tenho que 

implementá­los!

@fgsl

Page 36: PHP Simples e Produtivo

   

E eu respondo:

Então use frameworks!

@fgsl

Page 37: PHP Simples e Produtivo

   

E eu respondo:

Ou melhor, use Zend Framework!

@fgsl

Page 38: PHP Simples e Produtivo

   

Questão

O que é Zend Framework?

@fgsl

Page 39: PHP Simples e Produtivo

   

É a Liga da Justiça@fgsl

Page 40: PHP Simples e Produtivo

   

São os Vingadores!@fgsl

Page 41: PHP Simples e Produtivo

   

Ou seja...@fgsl

É uma biblioteca de componentes PHP com baixo acoplamento que podem ser 

utilizados de forma separada ou em conjunto para construção ou 

manutenção de projetos.

Page 42: PHP Simples e Produtivo

   

A volta ao mundo em ~70 componentes

@fgsl

De A a Z, o que podemos fazer com Zend Framework

Page 43: PHP Simples e Produtivo

   

Zend_Acl@fgsl

Lista de controle de acessos. Trabalha com a abordagem RBAC (Role Based Access 

Control)

Page 44: PHP Simples e Produtivo

   

Zend_Amf@fgsl

AMF (Action Message Format). Integração com com Adobe Flex.

Page 45: PHP Simples e Produtivo

   

Zend_Application@fgsl

Encapsula a inicialização e processamento das requisições.

Page 46: PHP Simples e Produtivo

   

Zend_Auth@fgsl

Componente que faz autenticação, independente do motor, e mantém os dados em 

armazenamento próprio.

Page 47: PHP Simples e Produtivo

   

Zend_Barcode@fgsl

Page 48: PHP Simples e Produtivo

   

Zend_Cache@fgsl

Page 49: PHP Simples e Produtivo

   

Zend_Captcha@fgsl

Page 50: PHP Simples e Produtivo

   

Zend_Cloud@fgsl

Componente para abstração de recursos de computação em 

nuvem.

Page 51: PHP Simples e Produtivo

   

Zend_CodeGenerator@fgsl

...

Page 52: PHP Simples e Produtivo

   

Zend_Config@fgsl

Lê e escreve nos formatos INI, XML, YAML e JSON.

Page 53: PHP Simples e Produtivo

   

Zend_Console_Getopt@fgsl

Facilita a criação de interfaces para linha de comando.

Page 54: PHP Simples e Produtivo

   

Zend_Controller@fgsl

Implementação dos padrões de projeto Front Controller, Page 

Controller, com URLs amigáveis e roteamento personalizado.

Page 55: PHP Simples e Produtivo

   

Zend_Currency@fgsl

Implementa o padrão de projeto Currency, para abstrair moedas. 

i18n.

Page 56: PHP Simples e Produtivo

   

Zend_Date@fgsl

Abstração de data e hora. i18n.

Page 57: PHP Simples e Produtivo

   

Zend_Db@fgsl

Abstração de conexão com banco de dados e mapeador 

objeto­relacional.

Page 58: PHP Simples e Produtivo

   

Zend_Debug@fgsl

Componente para ajudar a depurar aplicações.

Page 59: PHP Simples e Produtivo

   

Zend_Dojo@fgsl

Integração com o framework Javascript Dojo Toolkit.

Page 60: PHP Simples e Produtivo

   

Zend_Dom@fgsl

Manipulação da árvore DOM.

Page 61: PHP Simples e Produtivo

   

Zend_Exception@fgsl

Exceção padrão.

Page 62: PHP Simples e Produtivo

   

Zend_Feed@fgsl

Leitor e escritor de RSS.

Page 63: PHP Simples e Produtivo

   

Zend_File@fgsl

Transferência de arquivos com validadores e filtros.

Page 64: PHP Simples e Produtivo

   

Zend_Filter@fgsl

Filtro de entrada e saída de dados.

Page 65: PHP Simples e Produtivo

   

Zend_Form@fgsl

Construção dinâmica de formulários.

Page 66: PHP Simples e Produtivo

   

Zend_GData@fgsl

Integração com a API do Google.

Page 67: PHP Simples e Produtivo

   

Zend_Http@fgsl

Abstração de requisições e respostas.

Page 68: PHP Simples e Produtivo

   

Zend_Infocard@fgsl

Utilizado por Zend_Auth, abstrai cartões de identidade.

Page 69: PHP Simples e Produtivo

   

Zend_Json@fgsl

Conversor e servidor JSON.

Page 70: PHP Simples e Produtivo

   

Zend_Layout@fgsl

Parte do padrão Two Step View.

Page 71: PHP Simples e Produtivo

   

Zend_Ldap@fgsl

Integração com serviços LDAP.

Page 72: PHP Simples e Produtivo

   

Zend_Loader@fgsl

Autocarregador de classes.

Page 73: PHP Simples e Produtivo

   

Zend_Locale@fgsl

Componente para localização (l10n).

Page 74: PHP Simples e Produtivo

   

Zend_Log@fgsl

Abstração de log.

Page 75: PHP Simples e Produtivo

   

Zend_Mail@fgsl

Abstração de e­mail.

Page 76: PHP Simples e Produtivo

   

Zend_Markup@fgsl

Abstração para leitura e geração de documentos baseados em 

linguagem de marcação.

Page 77: PHP Simples e Produtivo

   

Zend_Measure@fgsl

Abstração de medidas. i18n.

Page 78: PHP Simples e Produtivo

   

Zend_Memory@fgsl

Objetos para ambientes com limitações de memória.

Page 79: PHP Simples e Produtivo

   

Zend_Mime@fgsl

Manipulador de mensagens MIME (Multipurpose Internet Mail 

Extensions), usado por Zend_Mail.

Page 80: PHP Simples e Produtivo

   

Zend_Navigation@fgsl

Controlador da navegação do usuário, gerencia árvores de ponteiros para páginas Web.

Page 81: PHP Simples e Produtivo

   

Zend_Oauth@fgsl

Implementação da especificação Oauth para autorização segura.

Page 82: PHP Simples e Produtivo

   

Zend_OpenId@fgsl

Encapsula OpenId para autenticação.

Page 83: PHP Simples e Produtivo

   

Zend_Paginator@fgsl

Controle de paginação de dados.

Page 84: PHP Simples e Produtivo

   

Zend_Pdf@fgsl

Geração e carregamento de arquivos PDF.

Page 85: PHP Simples e Produtivo

   

Zend_ProgressBar@fgsl

Geração de barra de progresso.

Page 86: PHP Simples e Produtivo

   

Zend_Queue@fgsl

Fábrica de clientes para filas.

Page 87: PHP Simples e Produtivo

   

Zend_Reflection@fgsl

Extensão da API de reflexão do PHP.

Page 88: PHP Simples e Produtivo

   

Zend_Registry@fgsl

Implementação do padrão de projeto Registry.

Page 89: PHP Simples e Produtivo

   

Zend_Rest@fgsl

Clientes e servidores REST.

Page 90: PHP Simples e Produtivo

   

Zend_Search_Lucene@fgsl

Mecanismo de busca baseado no Apache Lucene.

Page 91: PHP Simples e Produtivo

   

Zend_Serializer@fgsl

Fábrica de formatos de serialização.

Page 92: PHP Simples e Produtivo

   

Zend_Server@fgsl

Abstração para criação de servidores (provedores de 

serviços).

Page 93: PHP Simples e Produtivo

   

Zend_Service@fgsl

Abstração para serviços de terceiros, possui diversas implementações prontas.

Page 94: PHP Simples e Produtivo

   

Zend_Session@fgsl

Abstração da sessão. Controla início, fim e cria namespaces.

Page 95: PHP Simples e Produtivo

   

Zend_Soap@fgsl

Servidor e cliente SOAP.

Page 96: PHP Simples e Produtivo

   

Zend_Tag@fgsl

Criação de listas de tags.

Page 97: PHP Simples e Produtivo

   

Zend_Test@fgsl

Extensão do PHPUnit para aplicações Zend Framework.

Page 98: PHP Simples e Produtivo

   

Zend_Text@fgsl

Classes para criar artes e tabelas baseadas em texto.

Page 99: PHP Simples e Produtivo

   

Zend_TimeSync@fgsl

Recupera data e hora de servidores NTP (Network Time 

Protocol) ou SNTP (Simple NTP).

Page 100: PHP Simples e Produtivo

   

Zend_Tool@fgsl

Gerador de código e framework para criação de geradores.

Page 101: PHP Simples e Produtivo

   

Zend_Translate@fgsl

Tradução de textos. i18n.

Page 102: PHP Simples e Produtivo

   

Zend_Uri@fgsl

Abstração de URI.

Page 103: PHP Simples e Produtivo

   

Zend_Validate@fgsl

Regras de validação de dados.

Page 104: PHP Simples e Produtivo

   

Zend_Version@fgsl

Versão do framework.

Page 105: PHP Simples e Produtivo

   

Zend_View@fgsl

Implementação da camada de visão. Usa por padrão templates 

com extensão .phtml.

Page 106: PHP Simples e Produtivo

   

Zend_Wildfire@fgsl

Wildfire é um projeto open source para canais de comunicação 

padronizados. O componente do Zend permite enviar dados do 

servidor para o Firebug.

Page 107: PHP Simples e Produtivo

   

Zend_XmlRpc@fgsl

Cliente e servidor de XML­RPC.

Page 108: PHP Simples e Produtivo

   

UFA!@fgsl

Page 109: PHP Simples e Produtivo

   

Perguntas?@fgsl

[email protected]

www.fgsl.eti.br 

http://www.temporealeventos.com.br 

Page 110: PHP Simples e Produtivo

   

Obrigado!@fgsl

[email protected]

www.fgsl.eti.br 

http://www.temporealeventos.com.br 

Page 111: PHP Simples e Produtivo

   

Referências@fgsl

Holmes, Josh. The Lost Art of Simplicity. PHP Conference 2010.

http://www.joshholmes.com/blog/2009/04/29/thelostartofsimplicity/