Myphp-busters: symfony framework

  • 5,397 views
Uploaded on

The myphp-busters presentation I did at the PHP UK Conference 2009 on symfony framework

The myphp-busters presentation I did at the PHP UK Conference 2009 on symfony framework

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,397
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
10

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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