Curso PHP UNIFACS 2014.1 – Frameworks
-
Upload
becker-professional-education -
Category
Software
-
view
181 -
download
6
description
Transcript of Curso PHP UNIFACS 2014.1 – Frameworks
![Page 1: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/1.jpg)
Curso PHP
@JonataWeber
2014
Frameworks
![Page 2: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/2.jpg)
–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?
![Page 3: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/3.jpg)
“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?
![Page 4: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/4.jpg)
Como nasce?
Impossível criar
Framework
Interseção grande
Possível criar Framework
![Page 5: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/5.jpg)
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
![Page 6: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/6.jpg)
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
![Page 7: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/7.jpg)
Framework vs Biblioteca
Biblioteca Framework
![Page 8: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/8.jpg)
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
![Page 9: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/9.jpg)
• 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
![Page 10: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/10.jpg)
• 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
![Page 11: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/11.jpg)
Desvantagens
• Dificuldade de aprendizagem
• Construir um framework é complexo
• Necessidade de planejamento
• Quem pode pensar em longo prazo quando se está
competindo "On Internet time”?
![Page 12: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/12.jpg)
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
![Page 13: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/13.jpg)
Tecnologias Embutidas
• MVC
• ActiveRecord
• Internacionalização
• ORM
• Injeção de
Dependência
• Validation
• Authentication
• Routes
• Templates
• Caching
![Page 14: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/14.jpg)
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
![Page 15: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/15.jpg)
Frameworks PHP
![Page 16: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/16.jpg)
Full-Stack Frameworks• Aura
• CakePHP
• TYPO3 Flow [FLOW3]
• FuelPHP
• Joomla Framework
• Kohana
• Laravel
• ThinkPHP
• Lithium
• Nette Framework
• Phalcon
• PPI
• Symfony
• Yii
• Zend Framework
![Page 17: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/17.jpg)
Micro Frameworks
• Fat-Free
• MicroMVC
• Silex
• Slim
• Respect\Rest
![Page 18: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/18.jpg)
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.
![Page 19: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/19.jpg)
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
![Page 20: Curso PHP UNIFACS 2014.1 – Frameworks](https://reader031.fdocument.pub/reader031/viewer/2022020123/559501b61a28ab235d8b46c5/html5/thumbnails/20.jpg)
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/