Lot of professional support Tons of features activated by default (swiftmailer, doctrine, twig, ...) Solution for small applications - Lightweight - Easy to understand Nothing activated by default. DIY oriented. What about medium applications ?
Silex Extensions Use Pimple component for service container: + Based on Symfony components - Very few service providers for Silex • DIY: implement a ServiceProvider
Generated procedural code, optimized for resolution speed. Silex Declare a route: Routes declared in Application class. Every route reloaded in memory at each execution. Becomes critical when having many routes. - Silex routing performance • Declare controllers as services in Silex
be very lightweight, with good optimizations: - Remove unused bundles - Remove unused features from configuration Silex Mostly executed at runtime (but still possible to make optimizations, DIY). Simple enough for small websites, performant for small applications.
to migrate + Most of the framework-related code is kept (Twig, Doctrine, …) + Performance is OK for small websites - DIY in Silex for extra features - Heavy applications with Silex doesn’t make sense
framework. You should must be aware of that dependency, and decide or not to abstract your business code from it. To make this decision, you should consider: - The size of the coupling from your business your framework - The effort to abstract your business from X (5-days website) - The risk that X will be changed for Y or Z (benchmarks) - The durability of X (maintenance and support)
- Delegate everything to inner application - Override entry-points, one by one Difficulties - Conflict between libraries - Performance overhead It depends! (free beer consulting)
projects: - A good way to challenge yourself - A good way to discover new things - An opportunity to refactor your code - Makes you feel how much you depend on your framework - Makes you learn how to be agnostic in your code - Be aware of the costs and risks, and make assumptions