As a developer, I’m always looking for ways to speed up the delivery of high-quality, scalable, and extensible solutions. Development frameworks offer the opportunity to do just that—however, not all open source development frameworks are created equal. There are a number of frameworks available to developers today, including Symfony, Laravel, Yii, and Zend. At a minimum, all of them are designed to achieve the following:
–Enable developers to speed up the development process by leveraging pre-built, extensible components—that means writing a whole lot less code, and less debugging and testing, too!
–Reduce the complexity and cost of maintaining, scaling, or extending a solution in the future. Drupal, Pimcore, Pyro, and others have built their open source CMS’ on top of a proven framework.
We’ve recently worked on several Drupal-based development projects, which has enabled us to get intimately familiar with Symfony 3. Having worked with the Zend framework on numerous Pimcore-based projects, we could objectively analyze and assess the value that both frameworks offered. Some of the considerations that go into selecting an open source development framework are:
1. Documentation: When working with an open source development framework, calling a support help line when you run into an issue isn’t always possible, so the quality of documentation is critical to your success.
2. Community: A framework’s community is akin to using the “ask an expert” lifeline on Who Wants to Be a Millionaire—sometimes you will run into a tough problem and you will need to lean on someone skilled in that topic. Ensure that the development community is active, engaged, and friendly.
3. Features and Functionality: The reasoning behind selecting a framework is largely to reduce the time and complexity of development. Make sure that the framework you choose has a wide enough array of features and functionality to build your desired solution, and also extend it in the future as business and user needs shift.
4. Learning Curve: Depending on the framework, the learning curve associated with getting up to speed can vary widely. This is another area where documentation can be critical, as well as the availability of high-quality third-party training videos.
5. Security: When developing any web-based solution, security is always critically important. Make sure that you’ve done the research to identify any potential security risks associated with a particular open source development framework—before you start using it.
While other frameworks may be more robust than Symfony 3, most are unnecessarily complex in design. Symfony 3 offers a highly functional environment with tools designed to make the life of a developer much easier—including a legendary Web Debug Toolbar and native support for development environments.
It checks all the right boxes: the available documentation is both robust and easy to digest, and the community is well-established, active, and easy-to-engage when needed. The learning curve is short thanks to the “embedded” best practices (that are natively applied without having to be aware of them or understand them) allowing a beginner to quickly feel at ease. Last but not least, Drupal 8 and Pimcore 5 are both built on the Symfony framework.
Symfony 3 also wins out over other frameworks from a stability, reliability, and workflow angle. It offers a tremendous amount of flexibility for developers—its Dependency Injection and the Event Dispatcher make it entirely configurable, with each of the bricks being fully independent. This means that you can architect the solution pretty much any way you want—full stack, build it brick-by-brick, or approach it as a micro-framework and select just what you need.
For developers, Symfony 3’s simplicity reflects its sophistication. Want to learn more? Check out Symfony 3 here.