[FEATURE] Allow exposing the class name of an object in JsonView

Besides telling the identifier of a persisted object, it's now
additionally possible to expose the class name of this object.

For convenience, it's possible to output only the unqualified class
name rather than the fully qualified one.

Change-Id: Id64b4d13db85f64b936122b33b3223fb1081e67a
Resolves: #42784
Releases: master
[TASK] Ignore Libraries in core:migrate commands

This change makes the core:migrate commands ignore the folder
Packages/Libraries to avoid unintended side effects.

Change-Id: Iac8bf4f0a70ea54e0463ab369c7d190eb219a5d5
Resolves: #44398
Releases: master, 2.0
[BUGFIX] Implement case-sensitivity switch for Query::equals()

That was left as a todo and never done. Now it is possible to check
case-insensitive. Checking case-sensitive works depending on database
support, it can only be done if the database allows for case-sensitive
checking.

The change also trivially solves a todo about NULL checking in equals().

Change-Id: I50d3f31f8ad528d558febfde14a0bae62ca34f1d
Fixes: #44520
Releases: master, 2.0
[BUGFIX] Check inheritance in TypeHandling::isCollectionType()

With this change TypeHandling::isCollectionType() does consider
inheritance when it comes to the checking it does. Thus a subclass of
SplObjectStorage or an implementation of Doctrine's Collection interface
will now be seen as a collection type.

Change-Id: I007b0faf486680ecfb2fe7c753ef4cabcf6d618c
Fixes: #44535
Releases: master, 2.0, 1.1
[BUGFIX] Throw exception when using options with singleton validators

Validators being singleton must not be called with options because
the options are then inherent properties of the Validator and cannot
be executed subsequently with other options.

An exception is thrown if such a case occurs because it is then
a design mistake of the developer.

Besides, this improves the namespace use a bit.

Change-Id: I4a7dbaaaf8fa39a3f4677bb43db044a3231b843f
Releases: master, 2.0
Fixes: #34872
[FEATURE] Add unique entity validator

This adds a validator for ensuring uniqueness of submitted
entities. It uses the entity identity properties to determine
the uniqueness of the entity. Made with intended use in create
& update actions using the action parameter validation.

Change-Id: I52707f97a01ad902b654f80cf5aa873dc7ff8c24
Resolves: #44622
Releases: 2.0, master
[!!!][BUGFIX] Expose timezone in JsonView's DateTime output

This corrects the string formatting in JsonView regarding
DateTime objects. The additionally required Timezone offset
is appended as of ISO 8601 in order to not lead into timezone
issues after transferring the resulting JSON.

This is breaking in cases where the original incorrect behaviour
was worked around by subsequent processing of the transmitted
timestamp.

Fixes: #44997
Releases: master, 2.0
Change-Id: Ia26d68945dd6deae9438de7ba71dee67cff4626d
Merge "[TASK] Ignore Libraries in core:migrate commands"
Merge "[FEATURE] Add unique entity validator"
[BUGFIX] Redirect instead of raising "Entity not found" exception

If you are logged in into a secured Flow project and delete the
corresponding db user (for whatever reasons) an exception "Entity not
found" is raised and not caught.

With this change the exception is caught and instead PolicyEnforcement
will throw an AuthenticationRequiredException, usually calling a
redirect to the configured login page.

Change-Id: I5ae0ae2c174314ceb21ae641cd4ef140ca82efb7
Resolves: #29907
Releases: master, 2.0
Merge "[BUGFIX] Redirect instead of raising "Entity not found" exception"
[TASK] Add rendering date to documentation index

Change-Id: I6de5923f7277b728debd29f29a43e4f8aac2b99d
Releases: master, 2.0, 1.1
Merge "[TASK] Add rendering date to documentation index"
[TASK] Add custom configuration types documentation

In change I16b1de8e7c3ec826240c273a87c5e2a095815a86 the option to use
custom configuration types was added.

This change adds the missing documentation for that feature.

Change-Id: Id19f05b6b3105900c3cc9e8f5dd29c9dc0a1dc8e
Related: #37854
Releases: master
[TASK] Fix rendering date in documentation index

The change in I6de5923f7277b728debd29f29a43e4f8aac2b99d did nest markup,
so the "today" was not expanded.

Change-Id: Ief5e120f763c53f998db8b261eea7e810146c2dc
Releases: master
[BUGFIX] Correct method listing of cache FrontendInterface

The documented listing of the method the cache's FrontendIterface
supports is now in sync with the actually supported methods.

Change-Id: I5836d499ca27ae7d8b578e092074dc135af70901
Releases: master, 2.0
[BUGFIX] Dependency Injection: safeguard for malformed DocBlocks

This adds a safeguard to the Dependency Injection Proxy Class Builder
which previously ended with a fatal error if client code contained a
malformed DocBlock

Resolves: #45219
Releases: master, 2.0
Change-Id: Ib19c0e837a41fc7ba56b5546014e5f383d4699d1
[TASK] Cosmetic cleanup of security sub package

Non-functional adjustments adding type hints & fixing doc comments
in order to reduce code warnings in Security sub package.

Change-Id: I2cf69501db27051cfdbb4139607f724fb6325d23
Releases: master
Merge "[TASK] Cosmetic cleanup of security sub package"
[FEATURE] Allow influencing ini usage for sub process

With a newly introduced configuration directive
``TYPO3.Flow.core.subRequestPhpIniPathAndFilename`` it
is now possible to control whether to use an ini file
or not for sub processes. The allowed values for this
setting might either be NULL or not set to use the
parent process' ini file; or might be a path to a
specific ini file.

If this setting is set to ``false``, no explicit ini file
will be used for sub processes.

Additionally, this patch refactory the actual command
generation out of the execution method in order to make
it unit-testable, which is also included in this patch.

Change-Id: I7bae89d46ef7ed017526a1a2f7c5f328e62a0c76
Resolves: #45178
Releases: master