Myphp-busters: symfony framework (php|tek 09)

2,718 views
2,612 views

Published on

The slides for my "Myphp-busters: symfony framework" talk as done at the php|tek conference in Chicago

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

No Downloads
Views
Total views
2,718
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Myphp-busters: symfony framework (php|tek 09)

  1. 1. myphp-busters: symfony framework php|tek uncon 22-05-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. cc-by 2.0 http://www.flickr.com/photos/shonk/418180402/ Symfony is hard to learn
  8. 8. Steep Learning Curve • Full-stack • MVC • ORM • YAML
  9. 9. Great documentation • The Definitive Guide to symfony • Practical Symfony • Propel Edition • Doctrine Edition • Various other languages
  10. 10. Great documentation • Official books in digital form • Forms in Action • symfony and Doctrine • The Cookbook • API documentation • Tutorials & Screencasts
  11. 11. Community • IRC: #symfony on freenode • Forum • Mailinglists • Wiki • Snippets • Blog posts • Various local sites
  12. 12. Symfony is hard to learn • Steep learning curve • Great documentation (online and offline) • Friendly and supportive community
  13. 13. Symfony is hard to learn The Verdict
  14. 14. cc-by 2.0 http://www.flickr.com/photos/u-suke/138067687/ Symfony is extremely coupled
  15. 15. Perhaps in 1.0 • symfony was the glue between components • ORM integrated in the core • It was full-stack or nothing
  16. 16. by-nc-nd 3.0 http://www.symfony-project.org/blog/2008/06/23/the-symfony-1-1-architecture symfony platform
  17. 17. by-nc-nd 3.0 http://www.symfony-project.org/blog/2008/06/23/the-symfony-1-1-architecture platform and framework
  18. 18. Symfony is extremely coupled by-nc-nd 3.0 http://www.symfony-project.org/blog/2009/02/18/dailymotion-powered-by-symfony
  19. 19. 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
  20. 20. Symfony is extremely coupled The Verdict
  21. 21. symfony is not really programming, just configuration
  22. 22. Just configuration is no fun
  23. 23. Programming should be fun • No boring repetitive tasks • No standard stuff you did 100 times before • Write cool stuff • Focus on the cool parts
  24. 24. Yes, there is configuration • To minimize the boring tasks • To ensure you don’t repeat yourself • To enable you to concentrate on complex logic
  25. 25. So what is configured? • database credentials • caching • access control (authorization and authentication) • application specific values • routing • admin generator
  26. 26. So where do I touch code? • Your custom complex business logic • Application specific controller code • View displays • Custom administration tasks • Your own libraries
  27. 27. symfony is not really programming, just configuration The Verdict
  28. 28. by-nc-sa 2.0 http://www.flickr.com/photos/two-wrongs/205467442/ symfony is restrictive
  29. 29. symfony is restrictive • Default directory structure • Default set of classes • Default set of libraries • ORM included
  30. 30. Default directory structure • Easily change the most important directory locations: • document root • cache directory • log directory • You usually don’t need to do this!
  31. 31. Default set of classes • Default set offers most common uses • Easy to use your own custom class using configuration
  32. 32. Default set of libraries • Default libraries • lime (unit testing) • prototype / scriptaculous • Dozens of plugins • jquery, dojo, extjs, YUI • PHPUnit
  33. 33. ORM included • Propel is default • Doctrine is distributed with symfony • There is no need for an ORM
  34. 34. You can just disable both!
  35. 35. Hell, disable the database • When you don’t use the database • Models approach web services
  36. 36. symfony is restrictive The Verdict
  37. 37. Symfony is badly performing
  38. 38. Symfony doesn’t perform
  39. 39. Symfony doesn’t perform
  40. 40. Disclaimer: No benchmarks!
  41. 41. by-sa 2.0 http://www.flickr.com/photos/mattieb/131215442/
  42. 42. Symfony doesn’t perform • Slow • Hard on the server
  43. 43. Symfony doesn’t perform • Overhead • just like any framework • tweak it the right way
  44. 44. Symfony doesn’t perform • Select your caching strategy • Page caching • Function caching • Query caching • Supercache!
  45. 45. Cache
  46. 46. Cache
  47. 47. Symfony doesn’t perform • Turn off what you don’t need • ORM • Plugins • Database • Logging • Helpers
  48. 48. Symfony doesn’t perform • Don’t believe me! • Yahoo! Answers • Delicious.com • DailyMotion.com
  49. 49. Symfony is badly performing The Verdict
  50. 50. by-nc-nd 2.0 http://www.flickr.com/photos/mandolux/34418046/ symfony is the ultimate tool
  51. 51. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks • supports agile approach • MIT license • DRY • All the buzzwords
  52. 52. 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
  53. 53. symfony is the ultimate tool The Verdict
  54. 54. 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/
  55. 55. Questions? • http://joind.in/438 • http://www.leftontheweb.com/ • http://www.twitter.com/skoop • http://www.ibuildings.com/ • http://www.slideshare.net/skoop

×