Myphp-busters: symfony framework (PHPCon.it)

3,041 views

Published on

My myphpbusters presentation on the symfony framework, as presented at PHPCon.it in Italia

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,041
On SlideShare
0
From Embeds
0
Number of Embeds
712
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Myphp-busters: symfony framework (PHPCon.it)

  1. 1. myphp-busters: symfony framework PHPCon Italia 19-03-2009
  2. 2. Adam Savage
  3. 3. Jamie Hyneman
  4. 4. Stefan Koopmanschap
  5. 5. About me • Professional Services Consultant at Ibuildings • Husband, father of 2, slave of 6 • Symfony advocate • Initiator of SymfonyCamp • Founder of symfony-framework.nl • Plugin author/maintainer
  6. 6. The myths: symfony is... • ... hard to learn • ... extremely coupled • ... not really programming, just configuration • ... restrictive • ... badly performing • ... the ultimate tool
  7. 7. What I want to prove... • symfony is not crap • symfony fits in of pookey’s 10%
  8. 8. Pookey’s 10%
  9. 9. Pookey’s 10% <pookey> PHP is a fucking filthy horrible language in 90% of usecases.
  10. 10. Pookey’s 10% <pookey> PHP is a fucking filthy horrible language in 90% of usecases. <pookey> I will back that up with NOTHING
  11. 11. Pookey’s 10% <pookey> PHP is a fucking filthy horrible language in 90% of usecases. <pookey> I will back that up with NOTHING <pookey> but it's FACT
  12. 12. cc-by 2.0 http://www.flickr.com/photos/shonk/418180402/ Symfony is hard to learn
  13. 13. Steep Learning Curve • Full-stack • MVC • ORM • YAML
  14. 14. Great documentation • The Definitive Guide to symfony • Practical Symfony • Propel Edition • Doctrine Edition • Various other languages
  15. 15. Great documentation • Official books in digital form • Forms in Action • symfony and Doctrine • The Cookbook • API documentation • Tutorials & Screencasts
  16. 16. Community • IRC: #symfony on freenode • Forum • Mailinglists • Wiki • Snippets • Blog posts • Various local sites
  17. 17. Symfony is hard to learn • Steep learning curve • Great documentation (online and offline) • Friendly and supportive community
  18. 18. Symfony is hard to learn The Verdict
  19. 19. Symfony is hard to learn The Verdict
  20. 20. cc-by 2.0 http://www.flickr.com/photos/u-suke/138067687/ Symfony is extremely coupled
  21. 21. Perhaps in 1.0 • symfony was the glue between components • ORM integrated in the core • It was full-stack or nothing
  22. 22. by-nc-nd 3.0 http://www.symfony-project.org/blog/2008/06/23/the-symfony-1-1-architecture symfony platform
  23. 23. by-nc-nd 3.0 http://www.symfony-project.org/blog/2008/06/23/the-symfony-1-1-architecture platform and framework
  24. 24. Symfony is extremely coupled by-nc-nd 3.0 http://www.symfony-project.org/blog/2009/02/18/dailymotion-powered-by-symfony
  25. 25. Symfony is extremely coupled • 1.0 had quite some coupling • 1.1 introduced decoupling of the core: symfony platform • it is now possible to use core symfony classes without symfony
  26. 26. Symfony is extremely coupled The Verdict
  27. 27. Symfony is extremely coupled The Verdict
  28. 28. symfony is not really programming, just configuration
  29. 29. Just configuration is no fun
  30. 30. Programming should be fun • No boring repetitive tasks • No standard stuff you did 100 times before • Write cool stuff • Focus on the cool parts
  31. 31. Yes, there is configuration • To minimize the boring tasks • To ensure you don’t repeat yourself • To enable you to concentrate on complex logic
  32. 32. So what is configured? • database credentials • caching • access control (authorization and authentication) • application specific values • routing • admin generator
  33. 33. So where do I touch code? • Your custom complex business logic • Application specific controller code • View displays • Custom administration tasks • Your own libraries
  34. 34. symfony is not really programming, just configuration The Verdict
  35. 35. symfony is not really programming, just configuration The Verdict
  36. 36. by-nc-sa 2.0 http://www.flickr.com/photos/two-wrongs/205467442/ symfony is restrictive
  37. 37. symfony is restrictive • Default directory structure • Default set of classes • Default set of libraries • ORM included
  38. 38. Default directory structure • Easily change the most important directory locations: • document root • cache directory • log directory • You usually don’t need to do this!
  39. 39. Default set of classes • Default set offers most common uses • Easy to use your own custom class using configuration
  40. 40. Default set of libraries • Default libraries • lime (unit testing) • prototype • scriptaculous • Dozens of plugins • jquery, dojo, extjs, YUI • PHPUnit
  41. 41. ORM included • Propel is default • Doctrine is distributed with symfony • There is no need for an ORM
  42. 42. You can just disable both!
  43. 43. Hell, disable the database • When you don’t use the database • Models approach web services
  44. 44. symfony is restrictive The Verdict
  45. 45. symfony is restrictive The Verdict
  46. 46. Symfony is badly performing
  47. 47. Symfony doesn’t perform
  48. 48. Symfony doesn’t perform
  49. 49. Disclaimer: No benchmarks!
  50. 50. by-sa 2.0 http://www.flickr.com/photos/mattieb/131215442/
  51. 51. Symfony doesn’t perform • Slow • Hard on the server
  52. 52. Symfony doesn’t perform • Overhead • just like any framework • tweak it the right way
  53. 53. Symfony doesn’t perform • Select your caching strategy • Page caching • Function caching • Query caching • Supercache!
  54. 54. Symfony doesn’t perform • Select your caching strategy • Page caching • Function caching • Query caching • Supercache!
  55. 55. Cache
  56. 56. Cache
  57. 57. Symfony doesn’t perform • Turn off what you don’t need • ORM • Plugins • Database • Logging • Helpers
  58. 58. Symfony doesn’t perform • Don’t believe me! • Yahoo! Answers • Delicious.com • DailyMotion.com
  59. 59. Symfony is badly performing The Verdict
  60. 60. Symfony is badly performing The Verdict
  61. 61. by-nc-nd 2.0 http://www.flickr.com/photos/mandolux/34418046/ symfony is the ultimate tool
  62. 62. Symfony is the ultimate tool
  63. 63. Symfony is the ultimate tool • full-stack framework
  64. 64. Symfony is the ultimate tool • full-stack framework • based on MVC
  65. 65. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks
  66. 66. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks • supports agile approach
  67. 67. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks • supports agile approach • MIT license
  68. 68. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks • supports agile approach • MIT license • DRY
  69. 69. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks • supports agile approach • MIT license • DRY • All the buzzwords
  70. 70. Symfony is the ultimate tool
  71. 71. Symfony is the ultimate tool • Learning curve is more steep
  72. 72. Symfony is the ultimate tool • Learning curve is more steep • Has to fit your project
  73. 73. Symfony is the ultimate tool • Learning curve is more steep • Has to fit your project • Has to fit your project team
  74. 74. Symfony is the ultimate tool • Learning curve is more steep • Has to fit your project • Has to fit your project team • There is no single ultimate tool
  75. 75. symfony is the ultimate tool The Verdict
  76. 76. symfony is the ultimate tool The Verdict
  77. 77. Reference • http://www.symfony-project.org/doc/ • http://www.symfony-project.org/blog/2008/06/23/ the-symfony-1-1-architecture • http://www.symfony-project.org/blog/2009/02/18/ dailymotion-powered-by-symfony • http://www.symfony-framework.nl/
  78. 78. Questions? • http://joind.in/233 • http://www.leftontheweb.com/ • http://www.twitter.com/skoop • http://www.ibuildings.com/ • http://www.slideshare.net/skoop

×