5.3.0 (2019-04-15)

Overview of merged pull requests

TASK: Adjust to ActionResponse and ensure backward compatibility

This adjusts two places to use the ActionResponse and ensures backwards compatibility for userland code using the deprecated Response by not using the new methods just yet.

  • Packages: Flow FluidAdaptor

!!!TASK: Introduce ActionResponse in preparation for clean PSR-7

This is the continuation to a clear separation between MVC and HTTP stacks. The introduced ActionResponse offers a very limited interface to work with on the MVC level, with the following methods:

  • setContent()
  • setContentType()
  • setRedirectUri()
  • setStatusCode()
  • setComponentParameter()

Everything in the currently used HTTP\Response is still available but deprecated and will be removed in the next major, so make sure to adapt to the above API.

This change is marked breaking due to the deprecations, it should not break any existing code.

setContent() accepts also PSR-7 StreamInterface implementations and will likely only accept those in the next major.

A detailed blog post with the next steps will follow and go into more detail about the final separation and usage.

Special note regarding the setComponentParameter, for now this is your extensible portal towards HTTP. You can use it to set component parameters for your own HTTP components to set additional headers.

We are likely to extend the interface slightly for the major release as we are aware that this implementation is very limiting, but we need a clean separation between MVC and HTTP to start with.

Related discuss post: https://discuss.neos.io/t/rfc-psr-7-continuation/3597/10

  • Packages: Flow

TASK: Respect type hinting in reflection / support “@param Type[]” array syntax

Currently the Reflection Service does not work well with the @param Type[] array syntax. Also array type hints without a @param annotation result in a mixed type.

Through this PR the Reflection Service resolves Type[] to array<Type>. And array stays array even without annotation.

  • Packages: Flow

TASK: Avoid rendering of meta http-equiv if location headers are sent

Now meta http-equiv is only rendered if a delay is requested.

  • Packages: Flow

TASK: Remove unused object serializer class

Removes the unused ObjectSerializer class and according test.

Close: #1508

  • Packages: Flow

FEATURE: Add methods `csrfToken`, `isAuthenticated` and `hasAccess` to `Security` EelHelper

  • csrfToken returns CSRF token which is required for “unsafe” requests (e.g. POST, PUT, DELETE, …)
  • isAuthenticated returns true, if any account is currently authenticated
  • hasAccess returns true, if access to the given privilege-target is granted

The new methods add features to eel that previously were available as viewHelpers so they can be used in Fusion directly.

  • Packages: Eel Flow

TASK: Optimize parsing of resource uris

This avoids the costly \\Neos\\Utility\\Unicode\\Functions::parse_url which does a preg_replace_callback. As we know that we don’t expect just any URL in the resource stream wrapper we might as well use cheaper string functions to extract the necessary information. Given that evaluateResourcePath is called a lot especially in a Neos CMS context this can actually have a performance impact.

  • Packages: Flow

FEATURE: Add `format` method to String EEL Helper

This method pretty much just redirects its arguments to the PHP-native vsprintf and allows to format strings without ‘’ + ‘’ interpolation.

  • Packages: Eel Flow

TASK: Allow contains expression on entity properties

This is very limited on purpose but allows to write policies like this:

‘isType(“Whatever\Domain\Model\Party”) && (!property(“accounts”).contains(“context.securityContext.account”))’

  • Packages: Flow

FEATURE: Make recursion limit for the debugger configurable via Settings

With the default recursion Limit of 50 php often runs into memory-limits when debugging larger data structures. This change allows to define the recursionLimit via Settings. In addition the default recursionLimit is set to 5.

  • Packages: Flow

TASK: Update 3rd party dependency constraints

This allows semantically non-breaking updates for a number of 3rd party dependencies.

  • Packages: Flow FluidAdaptor

TASK: Remove empty documentation parts

This removes empty parts of the documentation, they are to be written following their respective tickets:

The part numbering was kept as is, to not break links. The “Deployment and Administration” part can be put back as “Part IV” when actually being written.

Resolves https://github.com/neos/documentation/issues/1

  • Packages: Flow

TASK: Update Doctrine DBAL dependency to 2.8

Because DBAL 2.8 has no backward compatibility breaks, we update this dependency.

For more informations go to https://github.com/doctrine/dbal/releases/tag/v2.8.0

  • Packages: Flow

!!! TASK: Deprecate PackageManagerInterface

As the package manager cannot be overwritten the interface is purely cosmetic and IF you actually use the package manager (which you probably should not in the first place) you can just inject the PackageManager directly instead of the interface.

  • Packages: Schema