Frameworks PHP

Preview:

Citation preview

Frameworks PHP

Comparando as principais ferramentas disponíveis

Quem sou eu

●Graduando em TADS● Trabalha com PHP desde 2007● Pequena experiência com tecnologias MS / Oracle

Principais Tópicos

●Design patterns●O que é um Framework?● Por que utilizar?● Solução livre vs Solução comercial●Qual Framework devo usar?

Design Patterns

O que?

Por que?

Quais?

?

Singleton

Factory

Adapter

Pubsub

?

O que é um Framework?

Moldura de trabalho

Conjunto de ferramentas

Modelos de frameworks

Full stack

Component based

CMS

Por que usar um Framework?

● Estabilidade○ Symfony 2

■Dois anos de planejamento■Dois anos de desenvolvimento e testes

Por que usar um Framework?

● Funcionalidades○ Zend Framework

■Mais de 60 módulos e crescendo■ Sugestões da comunidade■Módulos de terceiros

Por que usar um Framework?

● Padronização (?)○CakePHP

■Model, View, Controller■DataSource, Helper, Component

Solução comercial vs Solução livre

● Solução comercial○Mensalidade de suporte○Apoio centralizado○Documentação concisa

Solução comercial vs Solução livre

● Solução livre○Apoio da comunidade○Velocidade de resposta○Documentação aberta○Código fonte disponível

Qual framework devo usar?

● Problemas○ Tempo○Dinheiro

Qual framework devo usar?

●Avalie○Necessidades do SEU projeto○Maturidade dos frameworks○Conhecimento da equipe○Qualidade da documentação / comunidade

Zend Framework

● PHP 5●Orientação a Objetos●Design Patterns

○MVC○ Factory○Adapter

●Desenvolvido pela Zend em conjunto com a comunidade● Parte do Zend PHP Collaboration Project

Zend FrameworkVantagens● Suporte comercial da Zend●Componentes reutilizáveis●Documentação decente●Grande produtividade● Licença com foco comercial●Certificação de profissionais● Empresas envolvidas:

Zend FrameworkDocumentação●Documentação oficial no site● Livros

CakePHP

● PHP 4 + PHP 5●Design Patterns

○MVC○ActiveRecord

CakePHPVantagens● Licença flexível: MIT● Funciona em (quase) qualquer servidor por aí (PHP 4 e 5)●Geração fácil de CRUD a partir do BD●Validação de formulários● Templates● Ferramentas que auxiliam a gerar código

○ JavaScript○HTML

● Internacionalização●Comunidade ativa● Implantação facilitada

CakePHPDocumentação●Book●Bakery●API●Documentação em português

Symfony

● PHP 5.3●Design Patterns

○MVC● Princípios

○DRY○KISS

SymfonyVantagens● Licença flexível: MIT● Fácil de instalar e configurar● Simples de aprender●Altamente configurável● Inovação●Geradores

○ Projetos○Código

SymfonyDocumentação●Book●Cookbook●Referência●API●Glossário

CodeIgniter / kohana

● PHP 4 + PHP 5● Simplicidade

● kohana é um fork do CodeIgniter

CodeIgniter / kohanaVantagens● Pequeno●Bom desempenho●Não possui dependências externas (PECL, PEAR)●Documentação clara

CodeIgniter / kohanaDocumentação●CodeIgniter

○ Tutoriais○Guia do usuário

● kohana○Guia do usuário

yii

● PHP 5●Componentes para grandes aplicações●Design pattern

○MVC●WTF "yii"?

○ Lê-se: 'i', em bom português○ Easy○ Efficient○ Extensible

●Criado pelos desenvolvedores do PRADO

yiiVantagens●Alto desempenho●Comunidade ativa●Gerador de código●Widgets● Integração com jQuery

yiiDocumentação● Tour● Tutoriais●Referência a classes●Wiki●Outros

○Cheat sheets○ Playground○ Podcasts○Blogs indicados○ IRC

DooPHP

●Do OOP in PHP●Usa implementação nativa de OOP● Evita métodos mágicos●Design patterns

○MVC○ORM

●API REST

DooPHPVantagens●O framework mais rápido do oeste● Fácil desacoplamento● Fácil implantação

DooPHPDocumentação●Guia definitivo●Referência a API●Blog●Demos

Recess

● PHP 5● Foco em REST● Ferramenta para qualquer desenvolvedor● Suporte a annotations●MVC fácilmente desacoplável● Filosofia DRY●Arquitetura orientada a cache

RecessVantagens● Licença flexível: MIT●GUI para gerar aplicações e rotas

RecessDocumentação● The Book of Recess● Instruções de instalação● Tutoriais●Guias de usuário●Blog

Contato?

contato = { nome: "Marcos Garcia", email: "marcos.asgarcia@gmail.com", twitter: "@msilvagarcia", facebook: "facebook.com/marcos.asgarcia"};