FLOW3 1.0 Release Notes
After years of passionate work, the FLOW3 team is extraordinarily delighted to announce the release of FLOW3 1.0.
New in this Version
Since the release of 1.0 beta 2, the team took all their remaining energy to create an all-new website (based on FLOW3 and TYPO3 Neos) and solve about 150 feature requests and issues. The last two weeks have really been a remarkably intensive time!
Doctrine 2 Annotations
FLOW3 has been one of the first PHP projects taking advantage of annotations. As they are not part of the programming language, there is no standardized syntax for annotations in PHP. To improve the situation, we decided to join forces with the Doctrine team and integrate their annotation parser into FLOW3. The result is a modified syntax but also a row of new possibilities to use annotations. As this change does require code changes in client code, we have provided a migration tool (in the Scripts directory of the FLOW3 package) which allows for automatic adjustment of existing code.
One drawback of including the new annotation parser is speed. We have made a big effort to improve the performance and could increase the speed by about factor 8 for a typical TYPO3 Neos installation. However, if your project uses AOP a lot, you will experience long compiling times during development. We are aware of this and have started working on a solution for later FLOW3 versions.
A new feature which has been introduced lately is the automatic on-demand session initialization. FLOW3 won't start a session without a reason anymore but instead introduces a lazy loading mechanism for all objects with session scope. Additionally methods can be tagged with a @FLOW3\Session(autostart = true) annotation which results in sessions being initialized as soon as such a method is called.
Lazy session initialization is a pre-requirement for using any kind of external caching, such as the Varnish reverse proxy.
The YMAL parser used by FLOW3 was a very old one from the Horde project. As we discovered more and more oddities, we decided to switch to a new one. Due to FLOW3's architecture, integrating the Symfony Yaml component was as easy as dropping files into a folder. We are happy that using a component like that by the Symfony project demonstrates once again how beneficial collaboration between Open Source projects can be.
Several details in the routing mechanism have been improved. The most remarkable addition has been the generic Identity Routepart Handler which makes a lot of manual route definitions obsolete.
After T3CON11, we were overwhelmed with feedback by developers starting to work with FLOW3. At the same time, those commercial projects which are based on FLOW3 went into their testing phase and fed us with invaluable real-world experience. The core team was able to fix 139 issues and implement 9 new features in the last two weeks.
A full list of changes as well as upgrade instructions can be found here.
We are glad to have made it until here and would like to thank all those who put their trust into the FLOW3 project and supported it by donating us code, design, documentation, money or coffee. The TYPO3 community is really a remarkable place in this universe, making a project like FLOW3 possible at all.