Symfony2 - Reloaded

2.414 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.414
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

×