When should I use a framework?
Why would you have a custom piece of furniture made if you could find one that perfectly matches your décor, right off the shelf? The same is true for computer applications: Before you dive in to create a framework, a little survey work is in order.
Besides a framework, there are other solutions that are available to develop both Web sites and Web applications: CMSs (Content Management System) and their supplemental modules, as well as packaged professional solutions (CRM, e-commerce solutions, etc.). If their native features line up perfectly with your immediate and future needs, no question about it: Go for it! There is no point in reinventing the wheel.
On the other hand, when there are specific needs, specific business rules or even the need to mix building blocks (content and e-commerce, for example), a framework solution is necessary: it allows an application to be developed that perfectly matches your current needs, while still being innovative.
To make sure that you are making the right choice, both for the short as well as the long term, it is necessary to ask the right questions:
- What are my current needs? Are they covered by a packaged solution?
- What skills do I need if I choose a framework?
- Will the developed solution be upgradeable?
And finally, don’t fall into the trap of the "apparent simplicity of the requirements". In many cases it quickly becomes apparent that both the business rules and functions to be implemented are just not so simple to put in place.
By the way, Symfony is also very well suited for mini-projects.
- A framework can be tailored to all requirements...
- ...but that is not always necessary, especially when the requirements are of a more generic nature.
- Before making your selection, map out your current and future requirements in detail, and then compare the various solutions available on the market.