The current plan of record is to keep Magento 2 on Zend Framework 1. Magento provides much of its own framework that developers are expected to use. It does however leverage functionality currently from Zend Framework 1. The original plan of sticking with Zend Framework 1 was based on the benefits of moving to Zend Framework 2 being minor with the port taking significant effort. (It was also related to the current plan of record to defer reworking database access until post 2.0.) The Magento team can if required support Zend Framework 1 issues that come up that are important for Magento (for example if Zend decide to stop releasing patches).
While the current plan remains unchanged, with the developer beta period coming up it feels like a good time to review this decision and gauge current public opinion. This would be used as one input to internal discussions. But to set expectations, there is NO plan currently to change the underlying framework. Shall I repeat that? There is NO plan currently to change the underlying framework.
What Has Changed?
There are a few things that appear to have changed since the start of the Magento 2 project.
- There are questions whether Zend Framework 1 will continue to work on newer releases of PHP. Looking at patch 1.12.7 it mentioned including a change to make it compatible with PHP 5.6, so maybe it is not a concern, but will it work with PHP 7?
- It looks like Zend Framework 2 is not getting as much investment as Symfony 2. (This may simply be because Symfony is more popular so getting more external contributions – there is no implied comment on Zend here.)
- Zend Framework 2 and Symfony 2 both are reported as slower than Zend Framework 1 in this comparison of 20 PHP frameworks. (In fact, they are the two slowest!)
Time to have your say! Which framework do you personally think would be best?
- Staying on Zend Framework 1 is the least short term effort (and the current plan).
- Upgrading to Zend Framework 2 could be considerably less effort than moving to Symfony. For example, a Symfony port may be undoable by the current GA date with Zend Framework 2 being more feasible (but a squeeze).
- Symfony seems to have the most mind-share for PHP frameworks today.
- Moving to Symfony would likely trigger a much more radical change around database access than moving to Zend Framework 2 (which may be good, but take longer).
- Maybe there is another framework that is a better fit with Magento. One that provides what Magento does not support natively, but does not provide what Magento already has. (Slim? AuraPHP? Phalcon? etc)
- Should instead Magento provide a façade to hide the underlying framework? That may allow it to be swapped with no impact on extension developers, but also means developers could not use extra functionality provided by the framework if they wished to be portable across frameworks.
So please vote! Leave a comment to add more color. Opinions welcome! But I do want to repeat that this is information gathering and absolutely no commitment to follow any feedback provided. This is one of many inputs into internal discussions, with the most likely result of staying the current course.