5.3.26 (2021-05-02)

Overview of merged pull requests

TASK: Make JsonView datetime format configurable

This allows to override the badly chosen default format of DateTimeInterface::ISO8601 which is not really compatible to ISO8601 in the JsonView options datetimeFormat - see https://www.php.net/manual/en/class.datetimeinterface.php#datetime.constants.iso8601

  • Packages: Flow

BUGFIX: Ignore annotation properties that start with underscore when rendering

This fixes an error when using annotations that use internal public properties starting with an underscore, like zircote/swagger-php. This is only a workaround for the more generic problem of rendering annotations that contain publicly accessible internal state. Optimally rendering annotations for proxies would only be based on the information provided by the original annotation, like PHP 8 Attributes do. Alternatively docblocks would not be altered in proxies at all and just copied, but this would potentially be a breaking change.

  • Resolves: #2387

  • Packages: Flow

BUGFIX: Support nested fluid variables by using the original fluid method

With this patch it’s possible to use the fluid variable nesting feature as well as a specific accessor per element on the path.

How to use it

Create a fluid template with nested variables that access an array value: `html {config.{type}.value.{flavor}} ` Assign an array and the two keys: `php $this->view->assign('type', 'thing'); $this->view->assign('flavor', 'yellow'); $this->view->assign('config', ['thing' => ['value' => ['yellow' => 'Okayish']]]); `

  • Packages: Flow FluidAdaptor

TASK: Tweak polyfill replacements

The replacements added according to the symfony/polyfill README (and tweaked recently to actually appear in the split manifest) lead to an installation issue (composer/composer#9834)

Thus this removes the PHP 5 polyfills (those not being replaced should not be an issue) to fix that. Also, since we require PHP 7.1, the 7.2 polyfill must not be replaced.

  • Packages: Flow Unicode

BUGFIX: Add TTL to tags in RedisBackend

Previously the tags did not expire with their key, so they were never removed from Redis. Now the same lifetime as their corresponding entries is added to tags set by the RedisBackend

This is a continuation of #1194. To prevent race conditions when two processes write to the same cache tags at the same time, the list of keys that will be written is watched before and during the transaction. If the key is modified during that time, the transaction exec will fail and the TTL is calculated again (up to 4 retries).

  • Packages: Flow

Apply fixes from StyleCI

This pull request applies code style fixes from an analysis carried out by StyleCI.

For more information, click here.

  • Packages: Flow

Detailed log