6.0.19 (2021-01-04)

Overview of merged pull requests

BUGFIX: Return correct type for EEL trunc math helper

The internally used ceil and floor methods of the trunc helper return a float which doesn’t match the signature anymore and leads to unexpected comparison issues when using this helper in Fusion.

What I did

Cast the return values to int.

How I did it

See above

How to verify it

Call trunc with a positive int as parameter and check the type of the returned value. Instead of an int you would get a float.

Checklist

  • [x] Code follows the PSR-2 coding style
  • [ ] Tests have been created, run and adjusted as needed
  • [x] The PR is created against the lowest maintained branch
  • Packages: Eel

TASK: Update documentation to remove deprecated Doctrine connection

Since doctrine/dbal 2.11 PrimaryReadReplicaConnection should be used. This change updates the documentation to reflect this change. See https://github.com/doctrine/dbal/issues/4052 for details.

  • Packages: Flow

TASK: Allow to install with composer 2.0

This is a backport of #2251

  • Resolves: #2248
  • Packages: Flow

BUGFIX: Set Flow_Security_Cryptography_HashService defaultLifetime explicitly

Otherwise changing the default configs defaultLifetime will also make this cache be emptied unexpectedly and unnecessarily.

  • Packages: Flow

TASK: Fix some docblock typehints

This only fixes a couple of docblock typehints primarily in the ResourceManagement and TypeConverters.

  • Packages: Flow

BUGFIX: Correctly handle missing configuration with identity creation

The code did not handle a missing $configuration when converting an hash and data array containing an identifier.

See https://github.com/neos/flow-development-collection/pull/1931/files#r503144893

  • Packages: Flow Kickstarter

BUGFIX: Fix creation of translations with targetLanguageKeys defined

What I did

Previously, when trying to create translation files with targetLanguageKeys defined (flow kickstart:translation –target-language-keys=”de” for example), an error was thrown. The error said, that translationUnits is not defined in Neos\Kickstarter\Service\GeneratorService. This is, because Neos\Flow\I18n\Xliff\V12\XliffParser::getParsedData will return an array (for each <file>-Entry in the Xliff-File, typically only one entry). So we need to use the first item of that data to get the translationUnits from it.

How I did it

I only made a little change and added [0] to $parsedXliffArray in Neos\Kickstarter\Service\GeneratorService::generateTranslation().

How to verify it

  1. Try to kickstart a translation with –target-language-keys defined. An error will be thrown.
  2. Change $parsedXliffArray[‘translationUnits’] to $parsedXliffArray[0][‘translationUnits’] in the foreach loop of Neos\Kickstarter\Service\GeneratorService::generateTranslation().
  3. Retry to kickstart the translations.

Checklist

  • [x] Code follows the PSR-2 coding style
  • [ ] Tests have been created, run and adjusted as needed
  • [x] The PR is created against the lowest maintained branch - Lowest maintained branch is 4.3, so the PR is created against that version.
  • Packages: Flow Kickstarter

BUGFIX: Don’t access static properties in annotation classes

get_class_vars() will also return static properties. Hence we also try to access static properties for rendering the annotation and access them non-statically. This will lead to errors.

See https://github.com/zircote/swagger-php/issues/359#issuecomment-303058035 / https://github.com/zircote/swagger-php/issues/359#issuecomment-303227013

This solves that by using get_object_vars(), which will only return non-static properties with their current values.

  • Packages: Flow

TASK: Improve exception when a class can not be loaded during AOP building

This will now throw an exception that suggests to flush caches or check the existence and namespacing of the aspect class.

Until now such a case would lead to an unhelpful exception of: ` Warning: Invalid argument supplied for foreach() in /…/Packages/Framework/Neos.Flow/Classes/Aop/Builder/ProxyClassBuilder.php line 319 ` because the following get_class_methods() call would return null which is not checked for.

  • Packages: Flow

TASK: Replace symfony polyfills due to min PHP version

See https://github.com/symfony/polyfill#design

This prevents installing the symfony polyfills for php <= 7.1 and mbstring, since those are requirements of this Flow version.

TASK: Document alternative initial database setup method

./flow doctrine:create && ./flow doctrine:migrationversion –add –version all directly initializes the database schema and marks all migrations as done. This can be a helpful alternative initial setup in some cases.

  • Resolves: #2264
  • Packages: Flow

BUGFIX: Reduce maximum line length to 80 chars

This reduces the maximum line length of output to 80 chars when running core migrations.

See https://stackoverflow.com/questions/4651012/why-is-the-default-terminal-width-80-characters for more information

  • Packages: Flow

BUGFIX: FileSystemStorage::getObjects correctly returns a generator of StorageObject

Somehow this went unnoticed and the getObjects() method returned a generator generator. Also the element type docblock was wrong.

  • Packages: Flow

BUGFIX: Make InstallerScripts compatible to composer version 2.0+

Instead of querying the removed method ::getJobType we now check the class of the job instance like we do in the first lines of the method.

Cherry-picked from: f10e2570b04ad03efe27b1e2821e8d66f40cab3b

  • Fixes: #2187
  • Packages: Flow