Treinamento em Symfony2
High Performance PHP Framework for Web Development
João Paulo Cercal
Quem sou eu!?
a) João Paulo Cercal;
b) http://www.linkedin.com/in/jpcercal
a) POR NADA!
Porque ?
Bons sistemas dependem de
BONS PROGRAMADORES e
NÃO de linguagens...
Porque usar um FRAMEWORK?
Os frameworks surgiram com o objetivo de
facilitar o desenvolvimento de software, pois
utilizando-o, programadores focam os seus
esforços no que é realmente importante, as
regras de negócio do sistema.
Que frameworks existem
para PHP?
a) Zend Framework;
b) Symfony;
c) CakePHP;
d) etc...
Porque escolher o SF?
a) Mais rápido;
✓ 2x mais do que o SF 1.4;
✓ 3x mais rápido que o ZF1;
✓ 5x mais rápido que o CakePHP.
b) Flexibilidade Ilimitada;
✓ Full-Stack...
c) Expansível;
✓ através de bundles...
Porque escolher o SF?
d) Estável;
✓ Sensio Labs garante suporte de 3 anos...
e) De acordo com os padrões do mercado e de
projetos;
f) Excelente documentação;
g) Incentiva a criação de bundles;
h) Fácil de usar;
i) Baseado no conceito de Request/Response
do HTTP.
Porque escolher o SF?
Cuidado!
Request/Response no SF2
Versões do Symfony
a) 1.0 lançada em 2007;
b) 1.4 lançada em 2009;
c) 2.0 lançada em 2011;
d) 3.0 em breve...
Gerenciamento de
Dependências
a) Gerencia as dependências do software;
b) Facilita manutenibilidade;
c) Organização de bibliotecas de terceiros.
Gerenciamento de
Dependências
VS
E o que é um BUNDLE?
a) É um BANDO de coisas;
b) Tudo no SF2 é organizado em bundles;
c) Um bundle é uma estrutura de arquivos que
implementam uma única funcionalidade (um
blog, um fórum, autenticação,...) e são
facilmente compartilhados por
desenvolvedores.
Exemplo de um bundle
Bundles VS Plugins
a) O conceito é bastante semelhante exceto
pelo fato desde o core do SF2 é baseado em
bundles.
O que é um Bundle?
a) Aplicação;
b) Módulos;
c) Plugins;
d) ...
A2C Manager
a) Partiu do projeto cekurte/symfony2,
disponível em: https://github.com/CekurteSistemas/symfony2
b) Setup inicial do SF2;
c) Personalizações do SF2 e geração de código
fonte (CRUD) com base em modelos;
A2C Manager BUNDLES
integrados
a) Symfony 2.4;
b) Doctrine 2.2;
c) Twig 1.0;
d) SwiftMailer 2.3;
e) Monolog 2.4;
f) ...
A2C Manager BUNDLES
integrados
a) SymfonyFrameworkBundle;
b) SymfonySecurityBundle;
c) SymfonyTwigBundle;
d) SymfonyMonologBundle;
e) SymfonySwiftMailerBundle;
f) SymfonyDoctrineBundle;
g) ...
A2C Manager BUNDLES
integrados
h) JMSSecurityBundle;
i) CekurteUserBundle;
j) FOSUserBundle;
k) HWIOAuthBundle;
l) KnpPaginatorBundle;
m) CekurteGeneratorBundle;
n) ...
A2C Manager BUNDLES
integrados
o) FOSJsRoutingBundle;
p) LiipImagineBundle;
q) OneUploaderBundle;
r) CekurteUploaderBundle;
s) CekurteFixturesBundle;
t) CekurteMail2EasyBundle;
u) ...
Instalação
a) PHP 5.4.10+;
b) MySQL 5.5+;
c) Composer;
d) Bower;
e) Symfony 2.4+.
Projeto Prático
a) Sugestões?
b) Se não houverem, faremos um blog.
c) Aqueçam seus dedos...
Referências
http://symfony.com/
http://symfony.com/doc/current/_images/request-flow.png
https://getcomposer.org/
http://bower.io/
http://www.slideshare.net/cekurte/php-do-jeito-certo
http://pt.slideshare.net/hugomn/introduo-ao-symfony-2
http://www.slideshare.net/GuilhermeVeras/sfcon-2012-conceitos-de-engenharia-
reversa-aplicados-na-migraes-de-sistemas-legados-symfony-1x-para-symfony-2x

Treinamento em Symfony2