Channels

Services

FLOW3 faster, more stable, leaner

According to the developers, version 1.1 of FLOW3 – a PHP-based framework which came into being as part of work to develop a successor to Typo3 – incorporates several features leading to more speed, greater stability and lower memory use. Feedback from heavy users of FLOW3 1.0 enabled the developers to identify a range of bottlenecks in the system and allowed them to rework major parts of the framework without changing any of the related APIs. The biggest gains are said to come from an optimised Reflection service, a new freezable cache backend and a new modular bootstrap system.

The new bootstrap mechanism, called on each request to initialise parts of the framework, allows FLOW3 or third party packages full control over framework initialisation. The boot sequence can also be extended or trimmed down for tasks such as processing AJAX requests, which in turn helps reduce resource usage.

The MVC (model/view/controller) stack has also been reworked to make it more appropriate for REST-based services and applications, though this did involve some minimal changes to the API. The MVC framework is built upon a new HTTP foundation whose classes and methods are modelled closely on the RFC 2616 and 6265 HTTP specifications, more so than other major PHP frameworks according to the FLOW3 developers. The new HTTP foundation is backed with over 350 separate tests and has also enabled features such as cookie management, content negotiation for media types, and cache header and expiration models. There is also a new virtual HTTP client for testing available.

Internationalisation has now become an official part of FLOW3, with support for a translation handled using XLIFF format translation files on a per-package basis. There is also a fallback mechanism to help determine the best language to offer the user. Localised error messages are now displayed by the validation framework and, with improved logging, it should be easier to debug issues when creating the translation support for third-party packages.

The developers have introduced a new "anonymous" role and have changed how access control lists are defined, to be more in keeping with "real world" requirements. The changes mean that existing policies will need to be adjusted. Other security changes include support for multiple password hashing strategies and automatic session expiration.

The documentation for FLOW3 has also been subject of some major reworking. Planning for the future, the developers have added a code migration system where changes to the API can be defined and the system can automatically adjust old-style use of the API to the new style. The developers are planning to release FLOW3 1.2 by October 2012; this will include new package management and will be able to import remote packages while managing dependencies.

FLOW3 1.2 is available to download and is distributed under the LGPLv3 licence.