3.0.3 (2015-12-11)

Overview of merged pull requests

[TASK] Update ``doctrine/orm`` to 2.4 for PHP 7 compatibility

Prevents segmentation faults caused by Doctrine.

Prevents segmentation faults caused by Doctrine.

Excludes support for EntityListeners annotation introduced for 3.0

[TASK] Tweak routing documentation

Adjust Routing chapter to the placeholder support in routing defaults introduced with FLOW-76

[BUGFIX] Support for special characters in ``PositionalArraySorter`` keys

When using the PositionalArraySorter one can position keys relative to other keys with before/after <key>. But for the <key> only [a-zA-Z0-9] were allowed limiting the functionality especially when dealing with package keys that contain a dot.

This change adjusts the regular expression to allow any string to be referenced.

When using the PositionalArraySorter one can position keys relative to other keys with before/after <key>. But for the <key> only [a-zA-Z0-9] were allowed limiting the functionality especially when dealing with package keys that contain a dot.

This change adjusts the regular expression to allow any string to be referenced.

[TASK] Add DBAL minimum version to make JSON type work

The Json column type is support in doctrine DBAL only from version 2.5.0 onwards. The current dependencies allow installing it but it won’t happen automatically, this change makes sure that dbal is installed in the right version.

  • Packages: Flow

[TASK] Add best practice config to travis.yml

Adds some php configuration settings to the travis configuration to reduce the possibility of heap corruption errors.

[TASK] Adjust check for maximum path length

The SimpleFileBackend did a check for maximum path length on construction but reserved an arbitrary length of 23 for cache entry identifiers. Many identifiers are longer though and so even if the exception was not triggered cache entries could fail to be written. This change moves the check to after a failed cache writing attempt to check against the actual cache entry path.

  • Packages: Flow

[TASK] Finalize PHP 7 support

This fixes a few remaining (test) incompatibilities with PHP 7.

[TASK] Use wrapper for phpunit to catch segfaults

This uses a wrapper around the unit tests to handle an exit code of 139 as a non-error.

This happens when testing on Travis CI and while those error happen, we cannot do much else about it.

[BUGFIX] Lock files shouldn’t be opened twice

Prevents opening lock files twice, first in read then in write mode. Only one open should happen if successful. The change fixes that.

  • Packages: Flow

[BUGFIX] Fix PHP 5.3 compatibility issues

The 2.3 branch should be compatible to PHP 5.3, but since we did not have automated testing in place on that version of PHP, some incompatibilties have crept in.

This fixes those issues and enables the unit and functional tests to be run on PHP 5.3 on Travis CI.

Also the Behat tests for Flow are run with this, since there is no reason they shouldn’t.

[BUGFIX] Use jsonb in JsonArrayType on PostgreSQL

The JsonArrayType in Flow inherits from the same type in Doctrine DBAL.

That type uses the json format, which is not comparable in PostgreSQL, something that leads to issues if you want to use DISTINCT in a query. Starting with PostgreSQL 9.4 the jsonb type is available, and the DB knows how to compare it, making distinct queries possible.

Neos uses that, so the easiest way to fix this is to always use jsonb for our custom type. The downside: the minimum supported version is raised to 9.4.

Prevent invalid Cookie pairs from raising errors

Formally a Cookie header should consist of semi-colon separated pairs of key=value but some clients might sent invalid cookie headers resulting in a notice raised when there was no equals sign to split a pair on.

  • Packages: Flow

[TASK] Remove unused method in SimpleFileBackend

The generateTemporaryPathAndFilename is no longer in use since the introduction of locking last year, it can therefore be removed.

  • Packages: Flow

[BUGFIX] FlockLockStrategy should clean up lock files

The FlockLockStrategy creates files to apply the lock on. These files reside in the temporary folder but are never cleaned on releasing the Lock that means the amount of files in this folder will increase over time unless the folder is cleared manually.

Additionally cleans the code a bit and reduces chance of race conditions while creating the lock.

  • Packages: Flow

[TASK] Remove typo3.org SSO provider from Flow

This is no longer used and should have never been part of the framework itself, to begin with.

  • Packages: Flow

[BUGFIX] Refresh first level roles cache on authentication

As soon as an authentication process completes, roles might have changed. Therefore we have to reinitialize the roles first level cache in the security context.

[BUGFIX] Remove references to „methodTaggedWith“ pointcut designator

The pointcut designator „methodTaggedWith“ has been deprecated for 2.0 already. This removes some leftover reference to this method.

[TASK] Adjust generated proxy code to PHP 7 uniform variable syntax

This change contains a fix in the “related entities” proxy class code which makes the generated code PHP 7 compatible.

[BUGFIX] Ignore race condition on cached Configuration include

It can happen that the cache include file was already removed by a subrequest before getting to the unlink. The warning that would follow can safely be ignored.

  • Packages: Flow

[BUGFIX] Ignore injected properties for value hash generation

When injecting properties into a value object, an exception was thrown that a closure is tried to be serialized. This was due to the hash generation in PersistenceMagicAspect only skipping properties that are annotated as transient.

This change makes the value hash generation resort to the class schema instead of directly iterating all properties, since the class schema is already focused on persistence relevant properties and hence contains no injected properties.

  • Packages: Flow

[TASK] Adjust exception handling for compatibility with PHP 7

This change adjusts the non-public API of Flow’s exception handling to fit the new exception types in PHP 7 (\Throwable). It does not yet take advantage of the new possibilities, but rather makes the existing code compatible with both, PHP 5 and PHP 7.

  • Packages: Flow Fluid

[BUGFIX] FastCGI compatible resources ``.htaccess`` file

The .htaccess file in Web/_Resources contained php_flag, which requires the mod_php module to be installed. Since FastCGI setups don’t have this module, an invalid command error is thrown.

In this change the flag is wrapped in IfModule tags to avoid that error, and the SetHandler statement is added a second time in a Files tag to avoid it being overwritten in certain cases.

  • Packages: Flow

[BUGFIX] Roles are refreshed after setting authentication status

Otherwise getRoles() might act on the wrong value of the overall authentication status stored in the authentication manager.

  • Packages: Flow

[!!!][BUGFIX] Store site lock in Flow temporary base path

Storing the site lock files in the system temporary directory could lead to endless locks on some file systems. This changes the site locks to be stored in the Flow temporary base path again.

This is a breaking change because it removes the setting TYPO3.Flow.utility.environment.temporaryDirectoryBase in favor of a new environment variable FLOW_PATH_TEMPORARY_BASE that allows for changing the path if needed.


FLOW-348 introduced a new locking mechanism that stored lock files in the systems default temporary folder determined via sys_get_temp_dir(). On some systems files created there by the PHP process could not be removed afterwards.