Symfony2 : reloadedSymfony2 : reloaded
PHP Conference 2010PHP Conference 2010
PHPConference Brasil 2010 - Duodraco
Duodraco...Duodraco...
● Desenvolvimento web desde 2002
● Análise, desenvolvimento, a...
PHPConference Brasil 2010 - Duodraco
Falaremos hoje sobreFalaremos hoje sobre
● Framework
● Padrões de Projeto
● Symfony2
...
PHPConference Brasil 2010 - Duodraco
ObjetivosObjetivos
PHPConference Brasil 2010 - Duodraco
FrameworkFramework
PHPConference Brasil 2010 - Duodraco
FrameworkFramework
● “... é uma abstração que une códigos comuns
entre vários projeto...
PHPConference Brasil 2010 - Duodraco
FrameworksFrameworks
● Zend Framework
● CakePHP
● CodeIgniter
● Kohana
● Prado
● Seag...
Padrões de ProjetoPadrões de Projeto
PHPConference Brasil 2010 - Duodraco
Padrões de ProjetoPadrões de Projeto
● Soluções para problemas recorrentes - OOP
● Re...
PHPConference Brasil 2010 - Duodraco
CriacionaisCriacionais
● Referem-se à criação de novos objetos
● Singleton
● Abstract...
PHPConference Brasil 2010 - Duodraco
EstruturaisEstruturais
● Referem-se à estrutura/arquitetura do sistema
● Facade
● Pro...
PHPConference Brasil 2010 - Duodraco
ComportamentaisComportamentais
● Responsáveis pelo controle e alteração do
comportame...
PHPConference Brasil 2010 - Duodraco
Dependency InjectionDependency Injection
● Padrão não-GoF
● Manter baixo o nível de a...
PHPConference Brasil 2010 - Duodraco
Dependency InjectionDependency Injection
● Exemplo:
● Classe User (sessão)
● Utiliza ...
PHPConference Brasil 2010 - Duodraco
PHP 5.3PHP 5.3
● Performance
● Namespaces
● Late Static Binding
● Lambda, Closures
PHPConference Brasil 2010 - Duodraco
Symfony2Symfony2
● Construído com foco em performance
● Até 3x mais rápido que o symf...
PHPConference Brasil 2010 - Duodraco
Symfony2Symfony2
● Fabien Potencier – Sensio Labs
● Mesma filosofia do symfony (1)
● ...
PHPConference Brasil 2010 - Duodraco
Symfony2Symfony2
● PHP 5.3.2+
● Nova arquitetura
● Bundles, Kernel, etc..
● PERFORMAN...
ArquiteturaArquitetura
PHPConference Brasil 2010 - Duodraco
ArquiteturaArquitetura
● Kernel
● Bundles
● Dependency Injection Container
● Request ...
PHPConference Brasil 2010 - Duodraco
KernelKernel
● É criado no index.php (Controller)
● Inicializa a aplicação
● Carrega ...
PHPConference Brasil 2010 - Duodraco
BundleBundle
● Tudo no Symfony2 é um Bundle
● Sua Aplicação
● Funcionalidades do Fram...
PHPConference Brasil 2010 - Duodraco
Dependency Injection ContainerDependency Injection Container
● Baseado no Spring
● De...
PHPConference Brasil 2010 - Duodraco
Request HandlerRequest Handler
● Responsável pelo ciclo Request Response→
● Suporta P...
PHPConference Brasil 2010 - Duodraco
Event DispatcherEvent Dispatcher
● Base do Kernel e RequestHandler
● Implementação de...
EstruturaEstrutura
PHPConference Brasil 2010 - Duodraco
EstruturaEstrutura
● app/
● src/
● web/
PHPConference Brasil 2010 - Duodraco
EstruturaEstrutura
● app/
● cache/
● config/
● logs/
● views/
● ...
● console
● src/
...
PHPConference Brasil 2010 - Duodraco
EstruturaEstrutura
● app/
● src/
● Application/
● Bundle/
● vendor/
● autoload.php
● ...
PHPConference Brasil 2010 - Duodraco
EstruturaEstrutura
● app/
● src/
● Web/
● bundles/
● app.php
● app_dev.php
● check.php
http://symfony.duo/check.phphttp://symfony.duo/check.php
PHPConference Brasil 2010 - Duodraco
Primeiro RequestPrimeiro Request
● http://symfony.duo/app_dev.php/hello/Duodraco
PHPConference Brasil 2010 - Duodraco
Front ControllerFront Controller
app_dev.php | app.php | index.php
Nossa Aplicação
PHPConference Brasil 2010 - Duodraco
RecursoRecurso
Devemos codar para mapear a Requisição para o
Recurso adequado
PHPConference Brasil 2010 - Duodraco
RoteamentoRoteamento
● /app/config/routing.[php|yml|xml|ini]:
# app/config/routing.ym...
ViewView
PHPConference Brasil 2010 - Duodraco
ViewView
● Simples arquivo com substituições PHP
● src/Application/HelloBundle/Resour...
PHPConference Brasil 2010 - Duodraco
TemplatesTemplates
PHPConference Brasil 2010 - Duodraco
TemplatesTemplates
● Sistema hierárquico eficiente
● HTML/PHP ou Twig
● Rota
● HelloB...
PHPConference Brasil 2010 - Duodraco
SlotsSlots
● Pequeno trecho, reutilizável
PHPConference Brasil 2010 - Duodraco
HelpersHelpers
● Links
PHPConference Brasil 2010 - Duodraco
HelpersHelpers
ControllerController
PHPConference Brasil 2010 - Duodraco
ControllerController
● src/Application/HelloBundle/Controller/HelloController.php
PHPConference Brasil 2010 - Duodraco
ResponseResponse
● Retornado pelo método render
● $this->render() , lembram?
PHPConference Brasil 2010 - Duodraco
Error HandlingError Handling
● Responde com o Erro HTTP, se aplicável
PHPConference Brasil 2010 - Duodraco
RedirectRedirect
ForwardForward
PHPConference Brasil 2010 - Duodraco
RequestRequest
PHPConference Brasil 2010 - Duodraco
SessãoSessão
DoctrineDoctrine
PHPConference Brasil 2010 - Duodraco
DoctrineDoctrine
● ORM
● Object Relational Mapping
● DBAL
● DataBase Abstraction Laye...
PHPConference Brasil 2010 - Duodraco
DoctrineDoctrine
PHPConference Brasil 2010 - Duodraco
Doctrine2Doctrine2
MongoDB ODMMongoDB ODM
PHPConference Brasil 2010 - Duodraco
Doctrine2Doctrine2
MongoDBMongoDB
EmailsEmails
PHPConference Brasil 2010 - Duodraco
E-mailsE-mails
SwiftMailerSwiftMailer
PHPConference Brasil 2010 - Duodraco
E-mailsE-mails
SwiftMailerSwiftMailer
● Podemos usar o Gmail ;)
PHPConference Brasil 2010 - Duodraco
FerramentasFerramentas
PHPConference Brasil 2010 - Duodraco
Web Debug Toolbar [WDT]Web Debug Toolbar [WDT]
● Versão
● Symfony | PHP
● Xdebug
● AP...
PHPConference Brasil 2010 - Duodraco
ProfilerProfiler
PHPConference Brasil 2010 - Duodraco
AmbientesAmbientes
● Desenvolvimento [development]
● WDT, exceptions descritivas,requ...
PHPConference Brasil 2010 - Duodraco
Mensagens de ErroMensagens de Erro
PHPConference Brasil 2010 - Duodraco
ConsoleConsole
● Linha de comando – CLI
● Tarefas administrativas
● Doctrine
● Conver...
PHPConference Brasil 2010 - Duodraco
Onde obter?Onde obter?
PHPConference Brasil 2010 - Duodraco
http://symfony-reloaded.orghttp://symfony-reloaded.org
PHPConference Brasil 2010 - Duodraco
Release Estável prevista paraRelease Estável prevista para
Março 2011Março 2011
Dúvidas???Dúvidas???
PHPConference Brasil 2010 - Duodraco
● http://duodra.co
● o@duodra.co
● @duodraco [twitter e identi.ca]
● facebook.com/duo...
Symfony2 - Reloaded
Próximos SlideShares
Carregando em…5
×

Symfony2 - Reloaded

2.376 visualizações

Publicada em

O novo framework do Time de Fabien Potencier vem com tudo! Nova Arquitetura, ainda mais facilidades e um sistema excelente para desenvolvimento.

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.376
No SlideShare
0
A partir de incorporações
0
Número de incorporações
14
Ações
Compartilhamentos
0
Downloads
45
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Symfony2 - Reloaded

  1. 1. Symfony2 : reloadedSymfony2 : reloaded PHP Conference 2010PHP Conference 2010
  2. 2. PHPConference Brasil 2010 - Duodraco Duodraco...Duodraco... ● Desenvolvimento web desde 2002 ● Análise, desenvolvimento, arquitetura ● Zend Certified Engineer '07 ● Certified Scrum Master '10 ● Analista no TiqueImóveis ● Instrutor Dextra ● Evangelista PHP
  3. 3. PHPConference Brasil 2010 - Duodraco Falaremos hoje sobreFalaremos hoje sobre ● Framework ● Padrões de Projeto ● Symfony2 ● Sandbox ● Configuração ● Ferramentas ● Colocando a mão na massa
  4. 4. PHPConference Brasil 2010 - Duodraco ObjetivosObjetivos
  5. 5. PHPConference Brasil 2010 - Duodraco FrameworkFramework
  6. 6. PHPConference Brasil 2010 - Duodraco FrameworkFramework ● “... é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica” - wikipedia ● É a base para um sistema, sem ser um sistema ● Fullstack, glue, orm, gui, etc... ● Segurança, acesso a dados, webservices ● Design Patterns
  7. 7. PHPConference Brasil 2010 - Duodraco FrameworksFrameworks ● Zend Framework ● CakePHP ● CodeIgniter ● Kohana ● Prado ● Seagull ● Yii
  8. 8. Padrões de ProjetoPadrões de Projeto
  9. 9. PHPConference Brasil 2010 - Duodraco Padrões de ProjetoPadrões de Projeto ● Soluções para problemas recorrentes - OOP ● Reutilização ● Vocabulário comum ● Descrição: ● Nome, exemplo, contexto, problema e solução ● Tipos: ● Criação, estrutura, comportamento
  10. 10. PHPConference Brasil 2010 - Duodraco CriacionaisCriacionais ● Referem-se à criação de novos objetos ● Singleton ● Abstract Factory ● Factory Method ● Builder ● Prototype ● ...
  11. 11. PHPConference Brasil 2010 - Duodraco EstruturaisEstruturais ● Referem-se à estrutura/arquitetura do sistema ● Facade ● Proxy ● Decorator ● Composite ● Bridge ● ...
  12. 12. PHPConference Brasil 2010 - Duodraco ComportamentaisComportamentais ● Responsáveis pelo controle e alteração do comportamento dos objetos ● Iterator ● Observer ● Strategy ● Visitor ● Command ● ...
  13. 13. PHPConference Brasil 2010 - Duodraco Dependency InjectionDependency Injection ● Padrão não-GoF ● Manter baixo o nível de acoplamento ● Containers “injetam” as dependências nos objetos que as necessitam ● Classes não modificadas por uma alteração de configuração/ambiente/execução ● Usado em DB, logs, roteamento, etc
  14. 14. PHPConference Brasil 2010 - Duodraco Dependency InjectionDependency Injection ● Exemplo: ● Classe User (sessão) ● Utiliza o sistema de sessão do PHP, mas... ● Podemos mudar, usando SQLite... ● E 2 meses depois usando MongoDB ● Ai implementamos um log ... que usa User – Fonte do exemplo: @fabpot e @guilhermeblanco
  15. 15. PHPConference Brasil 2010 - Duodraco PHP 5.3PHP 5.3 ● Performance ● Namespaces ● Late Static Binding ● Lambda, Closures
  16. 16. PHPConference Brasil 2010 - Duodraco Symfony2Symfony2 ● Construído com foco em performance ● Até 3x mais rápido que o symfony 1.4 ou ZF 1.10 ● Consumo de memória 50% menor ● Framework completo ● Boas práticas e segurança ● Django, Spring, Rails e sf1
  17. 17. PHPConference Brasil 2010 - Duodraco Symfony2Symfony2 ● Fabien Potencier – Sensio Labs ● Mesma filosofia do symfony (1) ● Fraco acoplamento ● Configurável ● Testável ● Boas ferramentas para o desenvolvimento
  18. 18. PHPConference Brasil 2010 - Duodraco Symfony2Symfony2 ● PHP 5.3.2+ ● Nova arquitetura ● Bundles, Kernel, etc.. ● PERFORMANCE ● Doctrine 2 ● Twig / SwiftMailer ● ZF_Log
  19. 19. ArquiteturaArquitetura
  20. 20. PHPConference Brasil 2010 - Duodraco ArquiteturaArquitetura ● Kernel ● Bundles ● Dependency Injection Container ● Request Handler ● Event Dispatcher
  21. 21. PHPConference Brasil 2010 - Duodraco KernelKernel ● É criado no index.php (Controller) ● Inicializa a aplicação ● Carrega a configuração ● Inicializa os Bundles
  22. 22. PHPConference Brasil 2010 - Duodraco BundleBundle ● Tudo no Symfony2 é um Bundle ● Sua Aplicação ● Funcionalidades do Framework – Cache, Doctrine, Routing, Kernel ● Novas funcionalidades (plugins) ● Estrutura de arquivos, que implementam uma funcionalidade
  23. 23. PHPConference Brasil 2010 - Duodraco Dependency Injection ContainerDependency Injection Container ● Baseado no Spring ● Desenvolvedor não interage com o DIC ● Pelo menos não em um projeto comum ● Implementação ocultada em favor da configuração ● XML,YAML,PHP,INI doctrine.dbal: dbname: phpconf user: pc_user password: a_s3nha
  24. 24. PHPConference Brasil 2010 - Duodraco Request HandlerRequest Handler ● Responsável pelo ciclo Request Response→ ● Suporta Projetos bem estruturados ● Via configuração e roteamento ● Suporta estruturas simples ● Pequenos projetos
  25. 25. PHPConference Brasil 2010 - Duodraco Event DispatcherEvent Dispatcher ● Base do Kernel e RequestHandler ● Implementação de Observer ● Desacoplamento e Flexibilidade ● Baseado nas notificações do Cocoa (apple) ● Mas redesenhado para o PHP
  26. 26. EstruturaEstrutura
  27. 27. PHPConference Brasil 2010 - Duodraco EstruturaEstrutura ● app/ ● src/ ● web/
  28. 28. PHPConference Brasil 2010 - Duodraco EstruturaEstrutura ● app/ ● cache/ ● config/ ● logs/ ● views/ ● ... ● console ● src/ ● web/
  29. 29. PHPConference Brasil 2010 - Duodraco EstruturaEstrutura ● app/ ● src/ ● Application/ ● Bundle/ ● vendor/ ● autoload.php ● web/
  30. 30. PHPConference Brasil 2010 - Duodraco EstruturaEstrutura ● app/ ● src/ ● Web/ ● bundles/ ● app.php ● app_dev.php ● check.php
  31. 31. http://symfony.duo/check.phphttp://symfony.duo/check.php
  32. 32. PHPConference Brasil 2010 - Duodraco Primeiro RequestPrimeiro Request ● http://symfony.duo/app_dev.php/hello/Duodraco
  33. 33. PHPConference Brasil 2010 - Duodraco Front ControllerFront Controller app_dev.php | app.php | index.php Nossa Aplicação
  34. 34. PHPConference Brasil 2010 - Duodraco RecursoRecurso Devemos codar para mapear a Requisição para o Recurso adequado
  35. 35. PHPConference Brasil 2010 - Duodraco RoteamentoRoteamento ● /app/config/routing.[php|yml|xml|ini]: # app/config/routing.yml homepage: pattern: / defaults: { _controller: FrameworkBundle:Default:index } hello: resource: HelloBundle/Resources/config/routing.yml # src/Application/HelloBundle/Resources/config/routing.yml hello: pattern: /hello/:name defaults: { _controller: HelloBundle:Hello:index }
  36. 36. ViewView
  37. 37. PHPConference Brasil 2010 - Duodraco ViewView ● Simples arquivo com substituições PHP ● src/Application/HelloBundle/Resources/views/Hello/index.php
  38. 38. PHPConference Brasil 2010 - Duodraco TemplatesTemplates
  39. 39. PHPConference Brasil 2010 - Duodraco TemplatesTemplates ● Sistema hierárquico eficiente ● HTML/PHP ou Twig ● Rota ● HelloBundle:Hello:phpconf.php ● HelloBundle:[Controller]:phpconf.twig ● [Bundle]:[Controller]:layout.php
  40. 40. PHPConference Brasil 2010 - Duodraco SlotsSlots ● Pequeno trecho, reutilizável
  41. 41. PHPConference Brasil 2010 - Duodraco HelpersHelpers ● Links
  42. 42. PHPConference Brasil 2010 - Duodraco HelpersHelpers
  43. 43. ControllerController
  44. 44. PHPConference Brasil 2010 - Duodraco ControllerController ● src/Application/HelloBundle/Controller/HelloController.php
  45. 45. PHPConference Brasil 2010 - Duodraco ResponseResponse ● Retornado pelo método render ● $this->render() , lembram?
  46. 46. PHPConference Brasil 2010 - Duodraco Error HandlingError Handling ● Responde com o Erro HTTP, se aplicável
  47. 47. PHPConference Brasil 2010 - Duodraco RedirectRedirect ForwardForward
  48. 48. PHPConference Brasil 2010 - Duodraco RequestRequest
  49. 49. PHPConference Brasil 2010 - Duodraco SessãoSessão
  50. 50. DoctrineDoctrine
  51. 51. PHPConference Brasil 2010 - Duodraco DoctrineDoctrine ● ORM ● Object Relational Mapping ● DBAL ● DataBase Abstraction Layer ● ODM ● Object Document Mapper – MongoDB ● PDO
  52. 52. PHPConference Brasil 2010 - Duodraco DoctrineDoctrine
  53. 53. PHPConference Brasil 2010 - Duodraco Doctrine2Doctrine2 MongoDB ODMMongoDB ODM
  54. 54. PHPConference Brasil 2010 - Duodraco Doctrine2Doctrine2 MongoDBMongoDB
  55. 55. EmailsEmails
  56. 56. PHPConference Brasil 2010 - Duodraco E-mailsE-mails SwiftMailerSwiftMailer
  57. 57. PHPConference Brasil 2010 - Duodraco E-mailsE-mails SwiftMailerSwiftMailer ● Podemos usar o Gmail ;)
  58. 58. PHPConference Brasil 2010 - Duodraco FerramentasFerramentas
  59. 59. PHPConference Brasil 2010 - Duodraco Web Debug Toolbar [WDT]Web Debug Toolbar [WDT] ● Versão ● Symfony | PHP ● Xdebug ● APC ● Aplicativo ● Ambiente ● Profiler... ● Controller ● HTTP ● Sessão ● Tempo ● Memória
  60. 60. PHPConference Brasil 2010 - Duodraco ProfilerProfiler
  61. 61. PHPConference Brasil 2010 - Duodraco AmbientesAmbientes ● Desenvolvimento [development] ● WDT, exceptions descritivas,request,sem cache ● Teste [test] ● Homologação [staging] ● Produção [production] ● Erros mascarados ● cache
  62. 62. PHPConference Brasil 2010 - Duodraco Mensagens de ErroMensagens de Erro
  63. 63. PHPConference Brasil 2010 - Duodraco ConsoleConsole ● Linha de comando – CLI ● Tarefas administrativas ● Doctrine ● Conversões, Cache, Migrations, etc ● Bundles ● etc
  64. 64. PHPConference Brasil 2010 - Duodraco Onde obter?Onde obter?
  65. 65. PHPConference Brasil 2010 - Duodraco http://symfony-reloaded.orghttp://symfony-reloaded.org
  66. 66. PHPConference Brasil 2010 - Duodraco Release Estável prevista paraRelease Estável prevista para Março 2011Março 2011
  67. 67. Dúvidas???Dúvidas???
  68. 68. PHPConference Brasil 2010 - Duodraco ● http://duodra.co ● o@duodra.co ● @duodraco [twitter e identi.ca] ● facebook.com/duodraco ● linkedin.com/in/andersoncasimiro ● slideshare.net/duodraco ContatoContato

×