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
• RespectRest
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/

Curso PHP UNIFACS 2014.1 – Frameworks

  • 1.
  • 2.
    –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?
  • 3.
    “Um framework, emdesenvolvimento 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?
  • 4.
  • 5.
    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
  • 6.
    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
  • 7.
  • 8.
    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
  • 9.
    • 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
  • 10.
    • Programadores concentram-seem adicionar valor • Menos manutenção • OO maximiza o re-uso • Já foi testado! • Uso de tecnologias embutidas Vantagens a longo prazo
  • 11.
    Desvantagens • Dificuldade deaprendizagem • Construir um framework é complexo • Necessidade de planejamento • Quem pode pensar em longo prazo quando se está competindo "On Internet time”?
  • 12.
    Características básicas • Deveser reusável • Bem documentado • Fácil de usar • Deve ser extensível • Deve ser completo e eficiente dentro do seu propósito
  • 13.
    Tecnologias Embutidas • MVC •ActiveRecord • Internacionalização • ORM • Injeção de Dependência • Validation • Authentication • Routes • Templates • Caching
  • 14.
    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
  • 15.
  • 16.
    Full-Stack Frameworks • Aura •CakePHP • TYPO3 Flow [FLOW3] • FuelPHP • Joomla Framework • Kohana • Laravel • ThinkPHP • Lithium • Nette Framework • Phalcon • PPI • Symfony • Yii • Zend Framework
  • 17.
    Micro Frameworks • Fat-Free •MicroMVC • Silex • Slim • RespectRest
  • 18.
    6 motivos paranã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.
  • 19.
    6 motivos paranã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
  • 20.
    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/