6.3.0 (2020-09-08)

Overview of merged pull requests

TASK: Add documentation to model unidirectional OneToMany and ManyToMany

This adds basic documentation for how to properly model unidirectional OneToMany relations in Flow and slightly extends the “Getting Started” guide.

Related to #2053

  • Packages: Flow

TASK: Add missing HTTP status codes to ResponseInformationHelper

This adds a number of HTTP status codes to the ResponseInformationHelper and tweaks the message for code 413 from ‘Request Entity Too Large’ to ‘Payload Too Large’ (as in RFC7231 Section 6.5.11.)

  • Packages: Flow

TASK: Apply fixes from StyleCI

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

For more information, click here.

TASK: 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

TASK: Apply fixes from StyleCI

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

For more information, click here.

Apply fixes from StyleCI

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

For more information, click here.

  • Packages: Cache Eel Flow FluidAdaptor Schema

Apply fixes from StyleCI

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

For more information, click here.

  • Packages: Cache Eel Flow FluidAdaptor Schema

Apply fixes from StyleCI

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

For more information, click here.

  • Packages: Cache Eel Flow FluidAdaptor Schema

BUGFIX: Correct indention for throwables config

The configuration of the throwable exceptions should not be part of the psr3 level. And the default config did not work since 6.0. The method initializeExceptionStorage still expects the configuration to be at the path Neos.Flow.log.throwables.

  • Fixes: #2082
  • Packages: Flow

TASK: 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

TASK: Remove typo3 namespace replacements

There never was and never will be a typo3/flow version of 6.3+

  • Packages: Flow

!!! BUGFIX: Browser arguments are the request parsed body

Since 6.0 the Browser $arguments were accidentially moved to the request query parameters, while they should reflect the post body arguments.

The docblock even states that: @param array $arguments Arguments to send in the request body

Note: this slightly changes behaviour if you adapted your usage of Browser since 6.0.0. If you want to send query parameters, you should instead provide an Uri instance with the parameters, as was already the case prior to 6.0. (This is the reason for marking this bugfix as breaking.)

  • Packages: Flow

Fix some typos

When I stumbled over “anonyous”, I had a closer look at the hole section. I’m not a native speaker though.

  • Packages: Flow

TASK: Use argument unpacking instead of call_user_func_array

This is supported since PHP 5.6 and is actually faster than call_user_func_array at least since PHP 7. Just be sure to not use it in places where the method is static or a Closure. This also deprecates ObjectAccess::instantiateClass() (retrospectively). It will be removed with Flow 7.

  • Packages: Flow

BUGFIX: Make php binary setting check use realpath

The check if the current executing php binary path as set in PHP_BINARY matches the given setting in phpBinaryPathAndFilename was case-sensitive. This check is only done when the setting is specified and should guarantee that the path specified refers to the same binary as the one executing the current script. On Windows, the filesystem is case-insensitive by default though (Windows 10 has options to make it case-sensitive) and the chance that someone accidentially gets the casing of the path wrong on windows is (arguably) much more likely than someone having different versions of php installed on a case-sensitive filesystem in pathes /foo/PHP/php and /foo/php/php respectively. ~Even if that would be the case, if the two versions do not match the check at ensureWebSubrequestsUseCurrentlyRunningPhpVersion would still throw an error with an even more specific message.~

So this will prevent irritating errors on Windows in the form of !`image <https://user-images.githubusercontent.com/4259532/85157246-83217f00-b25b-11ea-8ebb-abc95b30e09a.png>`_

  • Packages: Flow

TASK: Update psalm baseline

Adjusts the psalm-baseline to changes in #2024

  • Packages: Cache Eel Flow

BUGFIX: Check if PdoBackend cache tables exist in setup

Running the setup for a PdoBackend multiple times should not lead to an error, similar to other Backends.

What I did Allow PdoBackend::setup() to be called multiple times.

How I did it Check if cache tables exist in PdoBackend::setup() before creating them.

How to verify it * See: #2039 * Packages: Cache

BUGFIX: Avoid trying to autowire constructor arguments for factory created objects

This bug was uncovered with the previous fix to not map arguments to the object when a factory is configured (see #1967). That way (singleton) objects which expected a (non-optional/nullable) constructor argument that could not be autowired (e.g. because it was a scalar) would lead to the exception “Could not autowire required constructor argument … for singleton class …”. This change fixes that, by completely skipping autowiring for objects configured with a factory. The factory has full responsibility to create and wire the constructor arguments correctly.

  • Packages: Flow

TASK: Improve wording of include/exclude concepts where possible

Those old wordings have no place and they are also objectively worse than the replacements.

  • Packages: Eel Flow

BUGFIX: Allow Views to replace the response in AjaxWidgetContext

If a WidgetController has a view returning a PSR-7 response, it was not replaced in Ajax context. Now the behavior of the ReplaceComponent is merged into the AjaxWidgetComponent, so the expected ActionController behavior can be guaranteed

  • Solves: #2027
  • Packages: FluidAdaptor

TASK: Adding a test case for breaking object configuration if argumen…

…ts of object constructed by factory cannot be autowired

  • 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: Eel Flow

FEATURE: Configurable PersistedUsernamePasswordProvider lookup name

Adds an option lookupProviderName to the PersistedUsernamePasswordProvider that allows the provider to be reused for multiple authentication types.

Example:

```yaml Neos:

Flow:
security:
authentication:
providers:
‘Acme.SomePackage:Default’:
provider: PersistedUsernamePasswordProvider token: UsernamePassword
‘Acme.SomePackage:Default.HttpBasic’:

provider: PersistedUsernamePasswordProvider providerOptions:

lookupProviderName: ‘Acme.SomePackage:Default’

token: UsernamePasswordHttpBasic entryPoint: HttpBasic

```

  • Resolves: #1996
  • Packages: Flow

TASK: Rename Doctrine\Common\Persistence -> Doctrine\Persistence

This fixes psalm errors due to the namespace renaming of various doctrine classes in doctrine/orm 2.7.3 release. The old class name was an alias since 2.7, so this should not break anything. 🤞

  • Packages: Flow ObjectHandling

TASK: Get rid of PhpUnit warnings in unit tests

Adjusts unit tests to avoid PhpUnit 8 deprecation warnings and in order to support PhpUnit 9

  • Packages: Flow

FEATURE: Add configurable PSR-15 middleware kernel

This introduces a configurable middleware chain as the new main entry point into HTTP request handling. The old component chain is itself now a middleware “dispatch” that is configured to run at the end and other middlewares can be configured to run before, which also means it runs after “dispatch” due to how PSR-15 middlewares work.

Each middleware itself decides if it runs only before, after, or both by invoking the next handler appropriately. See also https://www.php-fig.org/psr/psr-15/meta/

This allows to easily manipulate the incoming HttpRequest or the outgoing HttpResponse with existing middlewares (e.g. https://github.com/middlewares/awesome-psr15-middlewares) and even completely short-cut Flows old component chain handling to handle special cases more performantly.

Depends on #1967 Related to #1889

  • Packages: Flow

TASK: Change used variable TRUE into true

What I did

How I did it

How to verify it

  • Packages: Flow

BUGFIX: Fix typo

Well… sorry 😲

  • Packages: Flow