php symfony, vale a pena

Download PHP Symfony, Vale A Pena

If you can't read please download the document

Upload: marcelo-machado-fleury

Post on 24-May-2015

3.593 views

Category:

Technology


3 download

DESCRIPTION

Palestra realizada no GOPHP Conference, primeira conferencia de PHP do estado de Goiás.

TRANSCRIPT

  • 1. Symfony, vale a pena! Marcelo Machado Fleury marcelomf[em]gmail[ponto]com http://marcelomf.blogspot.com http://www.slideshare.com/marcelomf http://twitter.com/marcelomf ... #GOPHP, #GOJAVA, #PSL-GO, #FUG-BR, #CISSP-BR, #OWASP ...

2. Quem sou eu ?

  • Entusiasta do movimento Software Livre.

3. '' '' '' Ethical Hacking. 4. Iniciou a carreira como sysadmin *nix em 2000. 5. Desenvolvedor web PHP e Java (j2se) desde 2005. 6. Nos ultimos 3 anos se dedicou ao sistema financeiro SicoobGois, no qual foi o responsvel pela implantao da framework symfony. 7. Atualmente, presta consultoria pela cooperativa de software sintectus. 8. 9. Agenda

  • Conhecendo o symfony

10. Symfony e suas verses 11. Instalao e configurao do servidor 12. CLI Symfony 13. O model do symfony 14. As principais configuraes do symfony 15. O controller do symfony 16. O view do symfony 17. Componentes 18. Plugins para symfony 19. Integraes 20. Conhecendo o symfony

  • O que ?

21. Framework para desenvolvimento web em PHP 5. O projeto comeou em 2005 e teve como base outros projetos open source tais como; mojavi(MVC), propel(ORM), creole(Abstrao de acesso a dados) e conceitos j existentes na framework ruby on rails, tais como scaffolding e helpers. Hoje os esforos giram em torno de uma arquitetura mais desacoplada com base em injeo de dependncias. 22. MVC... 23. Conhecendo o symfony

  • Quem faz ?

24. Comunidade de desenvolvedores PHP, liderada por Fabien Potencier(SENSIOLABS). 25. Conhecendo o symfony

  • Como faz ?

26. Utiliza a licena open source creative commons, todo o desenvolvimento regido pelas filosofias DRY, KISS e eXtreme Programming, svn+trac . 27. Conhecendo o symfony

  • Quem usa ? Yahoo(Answers, Bookmarks), del.icio.us, Dailymotion(Segundo maior site de videos), Ministrio da educao, Serpro, Sicoob Gois e mais de 5 mil desenvolvedores php's que esto registrados nas maillist's e forum's.

28. Conhecendo o symfony

  • Mais de 700000 visitas no site por ms.

29. Aps 4 anos de projeto, desconheo uma falha publica de segurana no core do symfony. 30. Uma vez dominado, a produtividade maravilhosa. Trata-se de um projeto *RICO* e no complexo. 31. De acordo com artigos e testes de benchmark's(Elton Minetto, review da IBM, etc..), possui uma excelente performance. 32. Conhecendo o symfony

  • Possui uma verdadeira biblioteca virtual, documentao e exemplos no faltam. Comunidade ativa, maillist, blog, rss, forum e irc.

33. O trabalho de maquina deve ser feito por maquina, sendo assim temos: 34. menos cdigo -> menos complexidade -> menos bugs -> maior produtividade -> mais tempo -> mais $ 35. Symfony e suas verses

  • Symfony verso 1.0

36. - Padres de projeto como MVC, ORM, Front controller. Suporte a SCAFFOLDING/CRUD, helpers, Web Debug Toolbar, altamente configuravel(YAML) e gerador de cdigo legivel e documentado. 37. - Arquitetura taxada por ser monoltica, tendo dependncias hardcoded excecivas entre as classes, maior dificuldade de integrao entre tecnologias distintas. 38. Symfony e suas verses

  • Symfony verso 1.4

39. - Doctrine nativo(ds da 1.2). 40. - Php 5.2.4. 41. - Remoo de features deprecated's da verso 1.3. 42. - LTS(At final de 2012). 43. - Nova engine de Forms, com a criao dos componentes sfForm, sfValidators e sfWidget, alm da criao do componente EventDispatcher, garantindo um menor acoplamento entre as classes do controller e view. 44. Symfony e suas verses

  • Symfony verso 2.0

45. Criao dos novos componentes; Dependency Injection Container, Templating Framework, Routing, Forms, Output Escaping e Controller Handling que passaro a utilizar as novas features do PHP 5.3. O objetivo termos uma framework altamente desacoplvel, baseada na arquitetura microkernel de modo a garantir uma melhor integrao, seja com outras frameworks ou tecnologias php's distintas. 46. Symfony 1.0 47. Symfony 1.1 48. Symfony 2.0 49. Novos componentes do 2.0 50. Instalao e configurao do servidor

  • Instalao

51. - apt-get 52. - Svn svn checkout http://svn.symfony-project.com/branches/1.4 53. - pear channel-discover pear.symfony-project.com; pear install symfony/symfony-1.4.1 54. - Sandbox/"Vendorize" wget http://www.symfony-project.org/get/sf_sandbox_1_4.tgz; tar -xvzf sf_sandbox_1_4.tgz -C /var/www/; mv sf_sandbox sf14; ls -la /var/www/sf14 55. Instalao e configurao do servidor

  • Configurao do servidor(lamp+mod_rewrite):

56. echo "127.0.0.1 symfony" >> /etc/hosts 57.

  • ServerName symfony

58. DocumentRoot /var/www/sf14/web 59. DirectoryIndex index.php 60. Alias /sf /var/www/sf14/lib/vendor/symfony/data/web/sf 61. 62. AllowOverride All Allow from All 63. 64.

    • AllowOverride All
  • 65. Allow from All

66. Estrutura de diretrios 67. CLI Symfony 68. O model do symfony

  • Padro para modelagem

69. ORM: Propel X Doctrine 70. databases.yml 71. php symfony doctrine:build-schema 72. schema.yml (Possibilidade de alterar os nomes das classes, trabalhar com pacotes) 73. php symfony doctrine:build-model; php symfony doctrine:build-forms; php symfony doctrine:build-filters 74. Criao de rotas 75. php symfony doctrine:generate-admin aplicacao nomeRota 76. Objetos e Metodos mais utilizados 77. Query's -> Criteria X ActiveRecord 78. YAML

  • YAML complicado ? Experimente no dar :), ainda est complicado ? Codifique em PHP!

79. As principais configuraes do symfony

  • YAML

80. Banco de dados

  • - Schemas X Packages

81. - Mais de um banco de dados ? Configuraes da aplicao 82. Configuraes do modulo 83. Regionalizao 84. Internacionalizao 85. Templates 86. Validao 87. Autoload 88. Roteamento 89. Log 90. Cache (Cache em disco, em banco, memcache, zendCachePlugin, varios outros plugins) 91. O controller do symfony

  • Entendendo o fluxo

92. Objetos e Mtodos mais utilizados 93. Variveis de sesso 94. Validao 95. Retornando JSON 96. O view do symfony

  • Themas

97. Layout 98. Templates 99. Tableless 100. Ajax 101. Flex (sfAmfPlugin, weborb, sabreamf...) 102. Form's 103. EmbeddedForms's 104. Widget's 105. Validaes 106. Componentes

  • Partials
  • Campos visualmente customizado que no possue regras de negcio.

Slots

  • Pedao do template que no possui regras de negcio.

Components

  • Pedao do template que possui regras de negcio, portanto utiliza o controller.

Component Slots

  • Slot para o layout que com contedo dinmico.

107. Plugins para o symfony

  • Mais de 700 plugins, 1-2 plugins por dia

108. sfGuard 109. Jquery / UI 110. Prototype 111. Flex 112. sfDateTimePlugin 113. Ext 114. ... 115. Integraes / Ambiente

  • Testes unitrios -> PhpUnit

116. Documentao -> PhpDocumentor 117. Modelagem -> DBDesigner 118. Cdigo symfony em aplicaes php 119. Aplicaes php no symfony 120. Webservices 121. PEAR 122. IDE's: Eclipse(PDT, APTANA, sfeclipse, symfoclipse, sfdt) X Netbeans 123. Svn, Git 124. Redmine, Trac 125. Obrigado!

  • Referncia

126. -http://www.symfony-project.org/ 127. - http://components.symfony-project.org/ 128. -http://fabien.potencier.org/ 129. Contato:

  • marcelomf[em]gmail[ponto]com

130. http://marcelomf.blogspot.com 131. http://www.slideshare.com/marcelomf 132. http://twitter.com/marcelomf