All page names need to be in English.
en da  de  fr  it  ja  km  nl  ru  zh

FLOW3 1.0.0 alpha14

From TYPO3Wiki
Jump to: navigation, search
This page belongs to the Flow Team (category Flow)

Release Notes for FLOW3 1.0.0 alpha14

This document contains information about FLOW3 version 1.0.0 alpha 14 which was released on December 22nd, 2010.


notice - Note

As an alpha release, FLOW3 1.0.0 alpha 14 is not recommended for production use unless you know what you're doing

Release Notes at

What's New?

The main focus was bug fixes and speed improvements. Some of the measures we took to improve speed:

  • The setting FLOW3:resource:publishing:fileSystem:mirrorMode is now set to "link" by default which means that instead of copying each resource file to the public directory, symlinks are used.
  • Support for the serialization accelerator igbinary. If the igbinary extension is loaded, the VariableFrontend of the cache framework will use its serialize() and unserialize() functions instead of the PHP built-in variants.
  • Instead of checking for emerged classes or generally for available class names, the ReflectionService will now reflect classes only once (when the reflection cache is empty) and won't try it again (if detectClassChanges is disabled, such in production context).
  • Another measure to speed up initialization was to not cache the method DocComments anymore. Saves more than 1MB of caching data.

Another noteworthy feature are protected resources. By adding a security publishing configuration to one of your resource objects you can define the roles that will be allowed to access this resource (file). It is made sure that no one else can access the file or guess the link. If you are using Apache2 there will be even an .htaccess directive restricting access to the IP address of the granted user.

For a full list of new features and improvements please see our Changelog below.

Your Feedback

We want to hear your opinion! What's your experience with this release? What went well, what didn't? What features are you missing?

Join our discussions in the mailing list, IRC channel and twitter ... Check out for ways to get involved and get in touch.

Get into the FLOW3! - Your FLOW3 Core Team


MD5 checksums can be found on the download page.


The introduction of protected resources also brought ResourcePointer objects and made Resource objects entities. This breaks existing data, which can be migrated with this script:

./flow3 migrate resourceobjects

If you are not using the default SQLite database, you need to edit the connection parameter in the script


BACKUP your data before using this!


Changes that (may) require end-user code adjustments


  • The QueryResult::getFirst() method – and consequently also the repository's findOneBy*() method – returned FALSE if the result set was empty. Because this is contrary to the conventions elsewhere in FLOW3, this changes the behavior of getFirst() to return NULL instead.
  • If you changed the setting for authenticateAllTokens to TRUE you must now set authenticationStrategy: allTokens instead!
  • The setting FLOW3:resource:publishing:fileSystem:mirrorMode is now set to "link" by default. It is not 100% clear yet, how systems not supporting symlinks behave - if you experience any problems, please open an issue with a good error description so we can take some precautions
  • The initialize() method of the ReflectionService now has a different signature. If you mocked the ReflectionService in one of your tests, these tests probably need to be adjusted.


The base test cases for unit, functional and selenium tests were moved from the Testing package to the FLOW3 package. The new unit test case is now known as F3\FLOW3\Tests\UnitTestCase. The functional and selenium test cases are called FunctionalTestCase and SeleniumTestCase in the same namespace.

For backward compatibility, a legacy unit base test case using the old class name and namespace is available. Test cases of third-party packages should, however, switch to the new class names as soon as possible.

This also removes the PdoInterface from the global location to the GenericPdo test directory.



[~TASK] DocumentationBrowser: Fix build instructions
[~TASK] DocumentationBrowser: Update version in Package.xml


[+BUGFIX] ExtJS: Fixes RequestHandlerTest

[~TASK] ExtJS: Update Ext JS from 3.3.0 to 3.3.1
[~TASK] ExtJS (ViewHelper): Context-dependent debug output
[~TASK] ExtJS: Use new base test namespace
[~TASK] ExtJS (ExtDirect): Tiny CGL fix
[~TASK] ExtJS (ExtDirect): Use logException()
[~TASK] ExtJs: Update version in Package.xml


[+BUGFIX] FLOW3 (Testing): Use better uniqid() in ObjectManagerTest
[+BUGFIX] FLOW3 (MVC): Fix redirect for sub requests
[+BUGFIX] FLOW3 (Tests): Properly initialize persistence
[+BUGFIX] FLOW3 (Configuration): Check array index
[+BUGFIX] FLOW3 (Tests): Fix directory removal order
[+BUGFIX] FLOW3 (Persistence): Store NULL values correctly
[+BUGFIX] FLOW3 (Utility): Minor fix in Files::emptyDirectoryRecursively()
[+BUGFIX] FLOW3 (Resource): Normalize paths in publishStaticResources()
[+BUGFIX] FLOW3 (Security): Workaround for session concurrency problem
[~BUGFIX] FLOW3 (Security): Fix Apache2 access restriction resource publishing
[+BUGFIX] FLOW3 (AOP): Fix around advice with exception in chain
[+BUGFIX] FLOW3 (Security): Fix policy cache write
[!!!][+BUGFIX] FLOW3 (AOP): Fix AOP runtime evaluations
[+BUGFIX] FLOW3 (I18n): Set UNIX_PATHS flag when using RecursiveDirectoryIterator
[+BUGFIX] FLOW3 (Persistence): Fix dirty checking with uuid property
[+BUGFIX] FLOW3 (Security): Allow inheritance of tokens
[+BUGFIX] FLOW3 (AOP): Fix method visibility for default constructor
[+BUGFIX] FLOW3 (Package): Remove is_dir check for packages directory
[+BUGFIX] FLOW3 (Persistence): Handle new properties in flattenValue

[+FEATURE] FLOW3 (Security): Extend Account by creation- and expirationDate
[+FEATURE] FLOW3 (MVC): Add support for SubRequests
[+FEATURE] FLOW3 (Cache): Implement igbinary support
[+FEATURE] FLOW3 (Tests): Functional persistence testing support
[~FEATURE] FLOW3 (Security): Add all resources to the 'Everybody' role by default
[+FEATURE] FLOW3 (Tests): Functional security testing support
[+FEATURE] FLOW3 (Security): Implemented private resource publishing
[+FEATURE] FLOW3 (Security): New strategy for optional authentication
[+FEATURE] FLOW3 (Configuration): Get partial configuration
[+FEATURE] FLOW3 (MVC): Expose object identifier in JsonView
[!!!][+FEATURE] FLOW3 (Security): Allow authentication of multiple tokens
[+FEATURE] FLOW3 (Utility): Get HTTP headers from environment
[+FEATURE] FLOW3 (I18n): Add real CLDR inheritance and alias support.
[+FEATURE] FLOW3 (Log): Add logException() method
[+FEATURE] FLOW3 (Log): Log more info in FileBackend

[~TASK] FLOW3 (Security): Fix a @param annotation
[!!!][~TASK] FLOW3 (Persistence): Make getFirst() return NULL on empty result
[~TASK] FLOW3 (Security): Fix unit test leftovers
[~TASK] FLOW3: Use new base test namespace
[+TASK] FLOW3 (Scripts): Remove test namespace migration script
[+TASK] FLOW3 (Scripts): Add ResourcePointer migration script
[!!!][~TASK] FLOW3: Make symlink mirror mode the default
[~TASK] FLOW3 (Resource): Link whole directories for static resources
[~TASK] FLOW3 (AOP): Performance improvements for pointcuts
[~TASK] FLOW3 (Security): Helper methods for multi-factor authentication
[~TASK] FLOW3 (Testing): Add $securityContext to FunctionTestCase
[~TASK] FLOW3 (Security): Catch policy service exception in policy voter
[~TASK] FLOW3: Fixed windows line endings in Policy.yaml
[~TASK] FLOW3 (Security): Specify AccessDecisionManager
[+TASK] FLOW3 (Security): Add functional test for method security
[~TASK] FLOW3 (Configuration): Fix configuration loading
[~TASK] FLOW3 (Security): Fix Apache2AccessRestrictionPublisherTest
[~TASK] FLOW3 (Security): Cleanup in authentication token code
[~TASK] FLOW3 (Cache): Fix memory db DSN in tests
[~TASK] FLOW3 (Utility): Make PdoHelper static
[~TASK] FLOW3 (Security): Remove debug output
[~TASK] FLOW3 (Utility): Pass array in getValueByPath by reference
[!!!][~TASK] FLOW3: Moved and renamed base test cases
[~TASK] FLOW3 (Configuration): Sync setArguments() and setProperties()
[~TASK] FLOW3 (Package): Move constants to interface
[~TASK] FLOW3 (Cache): Use memory db for PDO tests
[~TASK] FLOW3 (Persistence): Throw helpful exception on missing object
[~TASK] FLOW3 (Security): Support additional tokens
[~TASK] FLOW3 (Security): Some code nitpicking
[!!!][~TASK] FLOW3 (Reflection): Improved speed of reflection service
[~TASK] FLOW3 (Error): Clean up exception handlers
[+TASK] FLOW3 (Security): More helpful NoEntryInPolicyException
[~TASK] FLOW3 (Log): Fix 2 tests in FileBackendTest
[~TASK] FLOW3: Clean up annotations/signatures
[~TASK] FLOW3 (Error): Fix AbstractExceptionHandlerTest
[~TASK] FLOW3 (Cache): Silence RedisBackendTest warnings
[~TASK] FLOW3 (MVC): Fix JsonView documentation
[~TASK] FLOW3 (Log): Fix unit tests after code change
[~TASK] FLOW3 (Error): Use logException() in exception handler
[~TASK] FLOW3 (Persistence): API annotations and comment fixes
[~TASK] FLOW3 (Configuration): Create configuration cache directory
[~TASK] FLOW3 (Cache): Fix @param in RedisBackend
[~TASK] FLOW3: Update version in Package.xml


[+FEATURE] Fluid (ViewHelpers): Add support for SubRequests in FormViewHelper
[~FEATURE] Fluid: Remove title parameter in ResourceViewHelper

[~TASK] Fluid: Use new base test namespace
[~TASK] Fluid (Core): Simplify debugging of exceptions thrown during render
[~TAKS] Fluid (Tests): Fix two warnings following FLOW3 change
[~TASK] Fluid: Update version in Package.xml


[+BUGFIX] Kickstarter: Make kickstarter usable in Phoenix distribution
[+BUGFIX] Kickstarter: Fix generated repository code

[~TASK] Kickstart: Use new base test namespace
[~TASK] Kickstart: Update version in Package.xml


[~TASK] FLOW3: Use new base test namespace
[~TASK] Party: Update version in Package.xml


[~TASK] Testing: Include base test cases
[~TASK] Testing: Remove infrastructure code
[-TASK] Testing: Remove unused MemoryStreamWrapper
[~TASK] Testing: Update version in Package.xml


[~TASK] Welcome: Update version in Package.xml

Past Release Notes

If you have skipped one version while upgrading to this version, please make sure to read those ReleaseNotes (see list) also.