The document discusses common myths about the Symfony framework. It addresses criticisms that Symfony is hard to learn, extremely coupled, just configuration rather than programming, restrictive, badly performing, and the ultimate tool. For each myth, it provides counterarguments, explaining that Symfony has good documentation, a supportive community, and flexibility. It concludes that while Symfony has a learning curve, it must fit the project and team, and there is no single ultimate tool.
6. 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
7. The myths:
symfony is...
• ... hard to learn
• ... extremely coupled
• ... not really programming, just configuration
• ... restrictive
• ... badly performing
• ... the ultimate tool
10. Great documentation
• The Definitive Guide to
symfony
• Practical Symfony
• Propel Edition
• Doctrine Edition
• Various other languages
11. Great documentation
• Official books in digital
form
• Forms in Action
• symfony and Doctrine
• The Cookbook
• API documentation
• Tutorials & Screencasts
12. Community
• IRC: #symfony on
freenode
• Forum
• Mailinglists
• Wiki
• Snippets
• Blog posts
• Various local sites
13. Symfony is hard to learn
• Steep learning curve
• Great documentation (online and offline)
• Friendly and supportive community
19. Symfony is extremely coupled
by-nc-nd 3.0 http://www.symfony-project.org/blog/2009/02/18/dailymotion-powered-by-symfony
20. 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
24. Programming should be fun
• No boring repetitive tasks
• No standard stuff you did 100 times before
• Write cool stuff
• Focus on the cool parts
25. Yes, there is configuration
• To minimize the boring tasks
• To ensure you don’t repeat yourself
• To enable you to concentrate on complex logic
26. So what is configured?
• database credentials
• caching
• access control (authorization and authentication)
• application specific values
• routing
• admin generator
27. So where do I touch code?
• Your custom complex business logic
• Application specific controller code
• View displays
• Custom administration tasks
• Your own libraries
28. symfony is not really programming, just
configuration
The Verdict
30. symfony is restrictive
• Default directory structure
• Default set of classes
• Default set of libraries
• ORM included
31. Default directory structure
• Easily change the most
important directory
locations:
• document root
• cache directory
• log directory
• You usually don’t need
to do this!
32. Default set of classes
• Default set offers most
common uses
• Easy to use your own
custom class using
configuration
33. Default set of libraries
• Default libraries
• lime (unit testing)
• prototype / scriptaculous
• Dozens of plugins
• jquery, dojo, extjs, YUI
• PHPUnit
34. ORM included
• Propel is default
• Doctrine is distributed with symfony
• There is no need for an ORM
53. Symfony is the ultimate tool
• full-stack framework
• based on MVC
• automation of common tasks
• supports agile approach
• MIT license
• DRY
• All the buzzwords
54. 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