Download - Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP
@JonataWeber
2014
Frameworks
–Fayad e Schmidt
“É um conjunto de classes que colaboram para
realizar uma responsabilidade para um domínio
de um subsistema da aplicação.”
O que é um Framework?
“Um framework, em desenvolvimento de
software, é uma abstração que une códigos
comuns entre vários projetos de software
fornecendo uma funcionalidade genérica.”
O que é um Framework?
Como nasce?
Impossível criar
Framework
Interseção grande
Possível criar Framework
Tipos de Frameworks• Frameworks Verticais
• Confeccionados através da experiência obtida em um
determinado contexto específico;
• Ex: Financeiro; Recursos Humanos
• Frameworks Horizontais
• Não dependem do domínio da aplicação e podem ser
usados em diferentes domínios
• Ex: Interfaces gráficas; Persistência; Transação
Tipos de Frameworks• Micro Frameworks
• Route HTTP Request para um callback, controller, método, etc.
• HTTP Services
• Full-Stack Frameworks
• ORM, Authentication packages, etc
• Component Frameworks
• Coleções de bibliotecas de propósito única e especializado
• Em conjunto podem formar um micro- ou full-stack framework
Framework vs Biblioteca
Biblioteca Framework
Vantagens a curto prazo
• Não reinventar a roda!
• Evitar desperdícios (redução de custos)
• Redução de time-to-market
• Segurança
• Extensibilidade
• Comunidade
• Produtividade
• Padronização
• classes, bibliotecas, convenções
• Eliminação das tarefas repetitivas
• Facilidade na geração de testes
• Geração de documentação
Vantagens a longo prazo
• Programadores concentram-se em adicionar valor
• Menos manutenção
• OO maximiza o re-uso
• Já foi testado!
• Uso de tecnologias embutidas
Vantagens a longo prazo
Desvantagens
• Dificuldade de aprendizagem
• Construir um framework é complexo
• Necessidade de planejamento
• Quem pode pensar em longo prazo quando se está
competindo "On Internet time”?
Características básicas
• Deve ser reusável
• Bem documentado
• Fácil de usar
• Deve ser extensível
• Deve ser completo e eficiente dentro do seu
propósito
Tecnologias Embutidas
• MVC
• ActiveRecord
• Internacionalização
• ORM
• Injeção de
Dependência
• Validation
• Authentication
• Routes
• Templates
• Caching
Documentação
• Descrição histórica
• Exemplos práticos
• Detalhes da sua criação e implementação
• Descrição do comportamento
• Fóruns de discussões
Frameworks PHP
Full-Stack Frameworks• Aura
• CakePHP
• TYPO3 Flow [FLOW3]
• FuelPHP
• Joomla Framework
• Kohana
• Laravel
• ThinkPHP
• Lithium
• Nette Framework
• Phalcon
• PPI
• Symfony
• Yii
• Zend Framework
Micro Frameworks
• Fat-Free
• MicroMVC
• Silex
• Slim
• Respect\Rest
6 motivos para não usar um
framework PHP• 1. Você é imortal, e portanto vai estar sempre por perto para ajudar outros
desenvolvedores a entenderem e estenderem seu código.
• 2. Você não tem vida então não vai se importar em investir todo o seu tempo
livre escrevendo comentários de código e documentações que já devem estar
escritas em um bom framework, para que outros desenvolvedores depois de
você (e você mesmo) possam escrever aplicativos com seu código.
• 3. Você está criando um aplicativo que vai estar entre os mais visitados da
internet (todos os acessos vindos de você mesmo e para toda a eternidade se o
#1 e #2 forem verdadeiros), assim pode justificar os potenciais nanosegundos
salvos por não ter a “sobrecarga” de um framework.
• 4. Você é um deus da segurança web e é muito mais inteligente que um grupo
de desenvolvedores que escreve código e testa coletivamente bons frameworks
em busca de falhas de segurança.
6 motivos para não usar um
framework PHP• 5. Você quer gastar todo o seu tempo reinventando a roda escrevendo
sua própria implementação de roteamento RESTful, ORM, engine de
templates, etc, etc, ao invés de usar o que bons frameworks proveem.
Ou talvez você pule a parte do ORM e apenas reescreva grandes
partes do aplicativo sempre que precisar mudar de banco de dados.
• 6.Você não tem prazos e “deadlines”.
• Se estes motivos não se aplicam a você eu recomendo que dê uma
olhada em algum framework como Zend Framework 2, Symfony 2,
Laravel
• - See more at: http://eltonminetto.net/blog/2013/04/21/6-motivos-para-
nao-usar-um-framework-php/#sthash.M7IAPjbp.dpuf
Referência
• http://www.phptherightway.com/#frameworks
• https://github.com/codeguy/php-the-right-
way/wiki/Frameworks
• http://imasters.com.br/noticia/pesquisa-aponta-
frameworks-php-mais-promissores-para-2014/