Overview of merged pull requests
FEATURE: Add method `askQuestion to console output that accepts a Question object <https://github.com/neos/flow-development-collection/pull/2874>`_
The other question methods take arrays or strings as arguments which is easy and convenient however the underlying symfony console offers more flexibility.
This pr adds the method
askQestion that accepts a smfony console question object and thus allows the full flexibility at the price of complexity.
In addition the method
getQuestionHelper is made public to make this as accessible as the
I chose not to allow Question objects in the
ask method because this method has a default argument that only makes sense when the question is passed as array or string.
With this change, the type of environment variables can be specified in Configuration files:
This will cast the corresponding value to the specified type (and to the base value of the type when referring to undefined environment variables).
Supported types and their base value are:
string: “” (empty string)
This change introduces support for PHP 7.4 style class property
type declarations for objects to be serialized by Flow. Previously,
@var annotation had to be specified for each class property, in
order to communicate the type to Flow’s serialization mechanism.
The documented feature to override the request method with the POST argument
__method or one of the HTTP headers X-Http-Method-Override or X-Http-Method was accidentally removed in the transition towards PSR-7. This adds it back in by adding a middleware that does the same logic that was removed with the previous Http\Request class.
is_numeric evaluates to true for strings like
"1" therefore the generated code would be missing the quotes
necessary to keep the default argument a string. This causes type errors in the proxy class when the arguments type is
Therefore the check whether an argument value is a string should be done first.
This change could be breaking if no type is used and a method somehow relies on the proxy class turning the argument default into a number.
HttpRequestEngine holds a reference to the “current” http request in each step of the middleware chain.
The internal request engine does not, making it hard to write tests, that predict system behavior.
With this patch you can fetch the current request (and not only the outer most) even in
The cache key for a dateTime format is now the expanded format pattern instead of
PdoBackend used a
MEDIUMTEXT column for the content, with
some special handling for PostgreSQL to fix null bytes in the content.
When using igbinary, even with MariadDB problems can occur, since the written content is garbled when fetched back and cannot be unserialized anymore, leading to cache misses / read errors.
This change fixes it by using a
BYTEA on PostgreSQL)
field for the content.
To make use of the new field, drop the
cache table and run the cache setup again.
Another option is to switch the column type manually using a DB management tool of your choice.
If you keep the old DB structure, aside from not having the fixed bug fixed:
MariaDB doesn’t care at all, the new code with the old DB structure works just fine.
PostgreSQL will “work” but need a cache flush, as previously cached content shows wrong.
Hard to say, but you definitely need igbinary to run into the issue. Probably also a
specific kind of data that cannot be stored in MariaDB
For PostgreSQL some code that used to do bin2hex/hex2bin on the data has been removed, so if things still work as before, this is good.
RouterCachingService such that it includes the specified
RouteParameters into the generated
!!! TASK: Add `persistAllowedObjects() and deprecate flag argument for persistAll() in PersistenceManager <https://github.com/neos/flow-development-collection/pull/2585>`_
If you ever used
persistAll(true) you should replace those invocations with
This makes sure
guzzlehttp/psr7 is will not be used in version with a known
This change adds logic to the ValidatorResolver to accept properties which were promoted in a constructor (PHP 8.1 promoted properties) and thus do not have a @var annoation in a doc comment.
At the same time, @var annotations are not necessary anymore if a type declaration was provided.
Note that there was already a PR for 5.3 but since that is a stale branch, which won’t be upmerged anymore, this PR now targets 8.0. Flow versions earlier than 8.0 are not supported, because this PR requires PHP 7.4 or higher.
The old .phpstorm.meta.php syntax is deprecated, see https://www.jetbrains.com/help/phpstorm/ide-advanced-metadata.html#legacy-metadata-format-deprecated
Code completion in PhpStorm should still “know” about these:
// $environment is Environment|obect $environment = $bootstrap->getEarlyInstance(Environment::class); // $environment is Environment|obect $environment = $objectManager->get(Environment::class);
This cleans up the log messages of the
SessionInterface, to reduce log volume.
- 22-06-21 14:35:46 70133 INFO Session: Started session with id ixadt08m586zKtcJmUTZend6ykWvP9fM.
- [array] =>
packageKey: [string] => Neos.Flow className: [string] => Neos\Flow\Session\Session methodName: [string] => start
22-06-21 14:35:46 70133 INFO Session: Started session with id ixadt08m586zKtcJmUTZend6ykWvP9fM.
No information is lost: The
Session prefix to the log message is the class
name and will already be fully qualified if not within
the package key was hardcoded and the method name is always what the
If you for some reason relied on the log messages having that exact format, you will need to adjust whatever you need to adjust.
The session activity should be logged as before, just less noisy.
I did not create this against 5.3, because, … well. But we could, if you like.
If the database setup fails, catching a
Throwable is needed to skip
The tests should pass, as opposed to https://github.com/neos/flow-development-collection/actions/runs/2346671349
See https://github.com/neos/flow-development-collection/pull/2838 for the “source” of this.
The API documentation is discontinued, the tooling is outdated and no one cares for static documentation anymore.
the templates now mention that the texts are used in change logs and explain the informations we need during review
Should be merged together with: - https://github.com/neos/BuildEssentials/pull/61 - https://github.com/neos/neos-development-collection/pull/3708
Use type casting instead of slower function calls.
The change in https://github.com/neos/flow-development-collection/pull/2792 did only allow for psr/log 2.0 while already adding the return type hints that are only part of 3.0. This change allows installing both 2.0 || 3.0 like we do for the other psr interfaces and provides implementations for both versions. Thanks @jonnitto for bringing this up See also https://github.com/neos/flow-development-collection/pull/2805
This runs the various tests in the build matrix against MariaDB 10.6 and PostgreSQL 14. The “lowest dependencies” job is run against MariaDB 10.2 and PostgreSQL 10.
This enables the experimental php-nightly build. Right now this failing will make the whole build to fail, which is not intended.