Your SlideShare is downloading. ×
Myphp-busters: symfony framework (PHPCon.it)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Myphp-busters: symfony framework (PHPCon.it)

2,586
views

Published on

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

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
2,586
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
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 PHPCon Italia 19-03-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. cc-by 2.0 http://www.flickr.com/photos/shonk/418180402/ Symfony is hard to learn
  • 13. Steep Learning Curve • Full-stack • MVC • ORM • YAML
  • 14. Great documentation • The Definitive Guide to symfony • Practical Symfony • Propel Edition • Doctrine Edition • Various other languages
  • 15. Great documentation • Official books in digital form • Forms in Action • symfony and Doctrine • The Cookbook • API documentation • Tutorials & Screencasts
  • 16. Community • IRC: #symfony on freenode • Forum • Mailinglists • Wiki • Snippets • Blog posts • Various local sites
  • 17. Symfony is hard to learn • Steep learning curve • Great documentation (online and offline) • Friendly and supportive community
  • 18. Symfony is hard to learn The Verdict
  • 19. Symfony is hard to learn The Verdict
  • 20. cc-by 2.0 http://www.flickr.com/photos/u-suke/138067687/ Symfony is extremely coupled
  • 21. Perhaps in 1.0 • symfony was the glue between components • ORM integrated in the core • It was full-stack or nothing
  • 22. by-nc-nd 3.0 http://www.symfony-project.org/blog/2008/06/23/the-symfony-1-1-architecture symfony platform
  • 23. by-nc-nd 3.0 http://www.symfony-project.org/blog/2008/06/23/the-symfony-1-1-architecture platform and framework
  • 24. Symfony is extremely coupled by-nc-nd 3.0 http://www.symfony-project.org/blog/2009/02/18/dailymotion-powered-by-symfony
  • 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. Symfony is extremely coupled The Verdict
  • 27. Symfony is extremely coupled The Verdict
  • 28. symfony is not really programming, just configuration
  • 29. Just configuration is no fun
  • 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. 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. So what is configured? • database credentials • caching • access control (authorization and authentication) • application specific values • routing • admin generator
  • 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. symfony is not really programming, just configuration The Verdict
  • 35. symfony is not really programming, just configuration The Verdict
  • 36. by-nc-sa 2.0 http://www.flickr.com/photos/two-wrongs/205467442/ symfony is restrictive
  • 37. symfony is restrictive • Default directory structure • Default set of classes • Default set of libraries • ORM included
  • 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. Default set of classes • Default set offers most common uses • Easy to use your own custom class using configuration
  • 40. Default set of libraries • Default libraries • lime (unit testing) • prototype • scriptaculous • Dozens of plugins • jquery, dojo, extjs, YUI • PHPUnit
  • 41. ORM included • Propel is default • Doctrine is distributed with symfony • There is no need for an ORM
  • 42. You can just disable both!
  • 43. Hell, disable the database • When you don’t use the database • Models approach web services
  • 44. symfony is restrictive The Verdict
  • 45. symfony is restrictive The Verdict
  • 46. Symfony is badly performing
  • 47. Symfony doesn’t perform
  • 48. Symfony doesn’t perform
  • 49. Disclaimer: No benchmarks!
  • 50. by-sa 2.0 http://www.flickr.com/photos/mattieb/131215442/
  • 51. Symfony doesn’t perform • Slow • Hard on the server
  • 52. Symfony doesn’t perform • Overhead • just like any framework • tweak it the right way
  • 53. Symfony doesn’t perform • Select your caching strategy • Page caching • Function caching • Query caching • Supercache!
  • 54. Symfony doesn’t perform • Select your caching strategy • Page caching • Function caching • Query caching • Supercache!
  • 55. Cache
  • 56. Cache
  • 57. Symfony doesn’t perform • Turn off what you don’t need • ORM • Plugins • Database • Logging • Helpers
  • 58. Symfony doesn’t perform • Don’t believe me! • Yahoo! Answers • Delicious.com • DailyMotion.com
  • 59. Symfony is badly performing The Verdict
  • 60. Symfony is badly performing The Verdict
  • 61. by-nc-nd 2.0 http://www.flickr.com/photos/mandolux/34418046/ symfony is the ultimate tool
  • 62. Symfony is the ultimate tool
  • 63. Symfony is the ultimate tool • full-stack framework
  • 64. Symfony is the ultimate tool • full-stack framework • based on MVC
  • 65. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks
  • 66. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks • supports agile approach
  • 67. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks • supports agile approach • MIT license
  • 68. Symfony is the ultimate tool • full-stack framework • based on MVC • automation of common tasks • supports agile approach • MIT license • DRY
  • 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. Symfony is the ultimate tool
  • 71. Symfony is the ultimate tool • Learning curve is more steep
  • 72. Symfony is the ultimate tool • Learning curve is more steep • Has to fit your project
  • 73. Symfony is the ultimate tool • Learning curve is more steep • Has to fit your project • Has to fit your project team
  • 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. symfony is the ultimate tool The Verdict
  • 76. symfony is the ultimate tool The Verdict
  • 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. Questions? • http://joind.in/233 • http://www.leftontheweb.com/ • http://www.twitter.com/skoop • http://www.ibuildings.com/ • http://www.slideshare.net/skoop