curso php unifacs 2014.1 – frameworks

Post on 02-Jul-2015

181 Views

Category:

Software

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides da última aula do curso de PHP UNIFACS 2014.1.

TRANSCRIPT

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/

top related