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