• Save
Myphp-busters: symfony framework (php|tek 09)
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 4,499 views
Uploaded on

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

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

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
4,499
On Slideshare
4,495
From Embeds
4
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
4

Embeds 4

http://www.slideshare.net 2
http://www.php.rk.edu.pl 1
http://www.sfexception.com 1

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|tek uncon 22-05-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. cc-by 2.0 http://www.flickr.com/photos/shonk/418180402/ Symfony is hard to learn
  • 8. Steep Learning Curve • Full-stack • MVC • ORM • YAML
  • 9. Great documentation • The Definitive Guide to symfony • Practical Symfony • Propel Edition • Doctrine Edition • Various other languages
  • 10. Great documentation • Official books in digital form • Forms in Action • symfony and Doctrine • The Cookbook • API documentation • Tutorials & Screencasts
  • 11. Community • IRC: #symfony on freenode • Forum • Mailinglists • Wiki • Snippets • Blog posts • Various local sites
  • 12. Symfony is hard to learn • Steep learning curve • Great documentation (online and offline) • Friendly and supportive community
  • 13. Symfony is hard to learn The Verdict
  • 14. cc-by 2.0 http://www.flickr.com/photos/u-suke/138067687/ Symfony is extremely coupled
  • 15. Perhaps in 1.0 • symfony was the glue between components • ORM integrated in the core • It was full-stack or nothing
  • 16. by-nc-nd 3.0 http://www.symfony-project.org/blog/2008/06/23/the-symfony-1-1-architecture symfony platform
  • 17. by-nc-nd 3.0 http://www.symfony-project.org/blog/2008/06/23/the-symfony-1-1-architecture platform and framework
  • 18. Symfony is extremely coupled by-nc-nd 3.0 http://www.symfony-project.org/blog/2009/02/18/dailymotion-powered-by-symfony
  • 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. Symfony is extremely coupled The Verdict
  • 21. symfony is not really programming, just configuration
  • 22. Just configuration is no fun
  • 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. 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. So what is configured? • database credentials • caching • access control (authorization and authentication) • application specific values • routing • admin generator
  • 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. symfony is not really programming, just configuration The Verdict
  • 28. by-nc-sa 2.0 http://www.flickr.com/photos/two-wrongs/205467442/ symfony is restrictive
  • 29. symfony is restrictive • Default directory structure • Default set of classes • Default set of libraries • ORM included
  • 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. Default set of classes • Default set offers most common uses • Easy to use your own custom class using configuration
  • 32. Default set of libraries • Default libraries • lime (unit testing) • prototype / scriptaculous • Dozens of plugins • jquery, dojo, extjs, YUI • PHPUnit
  • 33. ORM included • Propel is default • Doctrine is distributed with symfony • There is no need for an ORM
  • 34. You can just disable both!
  • 35. Hell, disable the database • When you don’t use the database • Models approach web services
  • 36. symfony is restrictive The Verdict
  • 37. Symfony is badly performing
  • 38. Symfony doesn’t perform
  • 39. Symfony doesn’t perform
  • 40. Disclaimer: No benchmarks!
  • 41. by-sa 2.0 http://www.flickr.com/photos/mattieb/131215442/
  • 42. Symfony doesn’t perform • Slow • Hard on the server
  • 43. Symfony doesn’t perform • Overhead • just like any framework • tweak it the right way
  • 44. Symfony doesn’t perform • Select your caching strategy • Page caching • Function caching • Query caching • Supercache!
  • 45. Cache
  • 46. Cache
  • 47. Symfony doesn’t perform • Turn off what you don’t need • ORM • Plugins • Database • Logging • Helpers
  • 48. Symfony doesn’t perform • Don’t believe me! • Yahoo! Answers • Delicious.com • DailyMotion.com
  • 49. Symfony is badly performing The Verdict
  • 50. by-nc-nd 2.0 http://www.flickr.com/photos/mandolux/34418046/ symfony is the ultimate tool
  • 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. 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. symfony is the ultimate tool The Verdict
  • 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. Questions? • http://joind.in/438 • http://www.leftontheweb.com/ • http://www.twitter.com/skoop • http://www.ibuildings.com/ • http://www.slideshare.net/skoop