9.1.3 (2026-10-05)
Overview of merged pull requests
BUGFIX: Unpack variadic parameters in proxies
A generated proxy method passes the parameters of the original method on to the parent method one by one. For a variadic parameter this means that the collected arguments are handed over as a single array, which results in a TypeError as soon as a proxied or advised method declares a variadic parameter.
The generated parent call now unpacks variadic parameters again. The same applies to the invocation of a join point at the end of an advice chain: a join point stores the arguments of a variadic parameter as one array, mapped to the name of that parameter, so that array needs to be unpacked before the method is called with the arguments taken from the join point.
Fixes: #3589
Packages:
Flow
BUGFIX: Comment out final keyword of static methods
The regular expression which comments out the final keyword of methods that are overridden in a proxy class did not match methods declared as final public static function or similar combinations including the static keyword. As a consequence, a final static method annotated with Flow\\CompileStatic resulted in a “Cannot override final method” fatal error – but only in Production context, where CompileStatic methods are compiled into the proxy class.
The new expression covers all combinations of public, protected, static and final, methods returning by reference and method names consisting of a single character.
Fixes: #3592
Packages:
Flow
BUGFIX: Drop `setlocale() calls from Functions::pathinfo() <https://github.com/neos/flow-development-collection/pull/3607>`_
This avoids a (PHP) bug where following regex calls can change their behaviour.
See #3606
Packages:
FlowUtility.Unicode
BUGFIX: Handle false model and pluralRulesSet in generateRulesets
This avoids Call to a member function getRawArray() on false.
Packages:
Flow
BUGFIX: Call original method in void proxy methods
When proxy building adds only pre parent call code to a method – without any post code – and the method declares a void or never return type, the generated proxy method contains the pre code but no call to the original method: the original implementation is silently skipped.
This change renders the parent call (without a return statement, which is not allowed for these return types) like the branch for pre and post parent call code already does.
Note for the upmerge to 9.2: the unit test noParentCallIsRenderedForVoidAndNeverReturnTypesIfOnlyPreParentCallCodeExists introduced with #3596 <https://github.com/neos/flow-development-collection/issues/3596>``_documents the old behavior and needs to be inverted – the ``ProxyMethodGeneratorTest introduced with this change covers the corrected behavior and will conflict with the file of the same name from #3596.
Fixes: #3597
Packages:
Flow
TASK: Use `Test attribute in kickstarter test template <https://github.com/neos/flow-development-collection/pull/3605>`_
Replaces the @test annotation with the PHPUnit #[Test] attribute in the generated entity test case, matching the style used since PHPUnit 11.
Packages:
FlowKickstarter
TASK: Drop support for legacy code caches
Drop support for xcache and wincache from our OpcodeCacheHelper.
Packages:
Utility.OpcodeCache
TASK: Update to PHPUnit 11
Upgrade instructions
The only thing you might need to adjust (besides catering to all the changes in PhpUnit 11), is the signature of getAccessibleMock() in our base testcase class. The arguments
$callAutoload$callOriginalMethods$proxyTarget
have been removed, as the underlying PHPUnit methods are deprecated.
Review instructions
All tests should still pass – have fun verifying they still do test the correct stuff.
Packages:
FlowCache
TASK: Fix typos in documentation and some strings
Hello!
First of all, thank you for your work! Just like in https://github.com/neos/neos-development-collection/pull/5846 I fixed typos in this repository too.
Upgrade instructions
n/a
Review instructions
I split my fixes into separate commits so changes in code (comments) and documentation are easily discernible. Note that c6d0157 changes actual strings in the code.
Packages:
FlowFluidAdaptor