4.3.9 (2018-08-29)

Overview of merged pull requests

TASK: Speed up lookups in IdentityRoutePart

This adds a second index to the database table in which the ObjectPathMapping instances are stored. It speeds up find operations for which the existing primary key does not help.

With enough data (250k entries for ObjectPathMapping) this speeds up page delivery by about 60%.

  • Packages: Flow

TASK: Tweak docblocks in Neos.Cache classes

Non-functional fixes to docblocks, fixing a few typos, adding a few @throws annotations and doing some cleanup here and there.

  • Packages: Cache Flow

BUGFIX: Fix the replacement pattern in updatemediatypes script

The pattern for the extensionToMediaType array was wrong since #697 Also, this has updated the MediaTypes with the current version from apache.

Related to #1364

  • Packages: MediaTypes

!!!BUGFIX: Cyclic validator calls don’t lose previous results

This change uses a stack inside Validators to store results of previous calls, so that results are not lost when a validator is called in a cycle. This may happen for any Object or Collection validators, since the Validator instances chain is built per class and hence cyclic relations (A -> * -> A) may lead to incorrect validation results otherwise.

Note: This bugfix is only breaking if you implemented your own Validator, extending GenericObjectValidator or CollectionValidator, overriding the validate() method and setting $this->result inside. In that case you are required to change the code to make use of pushResult()/popResult() like it is done inside AbstractValidator::validate(). This is an exception to the otherwise semantic versioning we strive for. It was decided because the breaking only happens in cases that would otherwise potentially be affected by the buggy behaviour of validation that could lead to invalid data entering the system.

In general, you are advised to create own Validators only by implementing the isValid() method instead of overriding the validate() method.

  • Packages: Flow

BUGFIX: Do not remove leading slashes from base path

Retargeted to Flow 4.3. For discussion see #1341 .

  • Packages: Files Flow

BUGFIX: Correctly build sub process command arguments

While building sub commands via Scripts::buildSubprocessCommand the arguments are not build in a syntax that is sensible for parsing by Flow later. Specifically an argument is build like this:

‘–argumentName’ ‘argumentValue’

The missing equals sign (=) makes this problematic to parse if the value contains an equal sign itself as that will then be identified as separator between argument name and value. With this change those arguments are now build like this:

‘–argumentName’=’argumentValue’
  • Packages: Flow