Skip to content

Commit

Permalink
[TASK] Review v10.0 Changelog
Browse files Browse the repository at this point in the history
Change-Id: Id4f981b3d6b62601ae4f3c7a56b3153d1884f669
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61328
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Susanne Moog <look@susi.dev>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Susanne Moog <look@susi.dev>
Reviewed-by: Benni Mack <benni@typo3.org>
  • Loading branch information
maddy2101 authored and bmack committed Jul 22, 2019
1 parent 9316718 commit 3346400
Show file tree
Hide file tree
Showing 122 changed files with 726 additions and 608 deletions.
14 changes: 14 additions & 0 deletions typo3/sysext/core/Documentation/Changelog-10.rst
@@ -0,0 +1,14 @@
:orphan:

.. include:: Includes.txt

=============
ChangeLog v10
=============

Every change to the TYPO3 Core which might affect your site is documented here.

.. toctree::
:titlesonly:

Changelog/10.0/Index
Expand Up @@ -11,14 +11,15 @@ Description

The IP-locking-functionality is extended from IPv4 only to now also support IPv6. A separate IpLocker-functionality was added.

The public property :php:`lockIP` in :php:`AbstractUserAuthentication` is now removed. It usually shouldn't have been accessed directly and supported IPv4 only.
The public property :php:`lockIP` in :php:`TYPO3\CMS\Core\Authentication\AbstractUserAuthentication` is now removed.
It usually shouldn't have been accessed directly and supported IPv4 only.


Impact
======

Extensions relying on :php:`lockIP` won't be able to perform their task anymore.
This might for example be the case when "lockIP" was set dynamically, depending on the REMOTE_ADDR.
This might for example be the case when :php:`lockIP` was set dynamically, depending on the REMOTE_ADDR.


Affected Installations
Expand All @@ -30,7 +31,7 @@ Every 3rd party extension depending on the formerly public :php:`lockIP` propert
Migration
=========

Set :php:`lockIP` and :php:`lockIPv6` in :php:`TYPO3_CONF_VARS` - for FE or BE depending on the usecase.
Set :php:`lockIP` and :php:`lockIPv6` in :php:`TYPO3_CONF_VARS` - for FE or BE depending on the use case.
Use the new :php:`\TYPO3\CMS\Core\Authentication\IpLocker` API.

.. index:: Backend, Frontend, LocalConfiguration, NotScanned
Expand Up @@ -17,7 +17,7 @@ time, but had side-effects if changes were made between publishing and unpublish
However, this functionality was not visible to TYPO3 out of the box, but only available with a possible third-party integration
since TYPO3 4.5. The feature was therefore removed from TYPO3 Core.

The (hidden) database field `sys_workspace.unpublish_time` was removed.
The (hidden) database field :sql:`sys_workspace.unpublish_time` was removed.


Impact
Expand All @@ -38,4 +38,4 @@ Migration
If this feature is required for an installation, the field should be re-added by the third-party extension in TCA (which was missing)
and the database which was using the functionality. On top, a custom auto-unpublishing CLI command should be created.

.. index:: Database, NotScanned, ext:workspaces
.. index:: Database, NotScanned, ext:workspaces
Expand Up @@ -1438,9 +1438,9 @@ The following features have been removed:
* TCA auto migration from core v6 to core v7 compatible TCA
* TCA auto migration from core v7 to core v8 compatible TCA
* TCA :php:`type='group'` with :php:`internal_type='file'` and :php:`internal_type='file_reference`
* Cache creation using :php:`\TYPO3\CMS\Cache\CacheManger` during :php:`ext_localconf.php` loading
* All install tool upgrade wizards upgrading from v7 to v8 have been removed
* The array key :php:`uploadfolder` in extensions :php:`ext_emconf.php` files is obsolete and ignored.
* Cache creation using :php:`\TYPO3\CMS\Cache\CacheManger` during :file:`ext_localconf.php` loading
* All install tool upgrade wizards upgrading from v7 to v8
* The array key :php:`uploadfolder` in extensions :file:`ext_emconf.php` files is obsolete and ignored.
* Standalone install tool entry point :file:`typo3/install/index.php` has been dropped, use :file:`typo3/install.php` instead
* INCLUDE_TYPOSCRIPT statements in typoscript using a `.txt` ending for a file that ends with `.typoscript` does not work any longer
* These variables are no longer declared in :file:`ext_tables.php` and :file:`ext_localconf.php` files: :php:`$_EXTKEY`, :php:`$_EXTCONF`,
Expand All @@ -1454,10 +1454,10 @@ The following features have been removed:
* The extension :php:`taskcenter` and its add-on extension :php:`sys_action` have been dropped from core
* Translation :php:`locallang` references :php:`EXT:lang` to removed extension "lang" do not work any longer
* EXT:form: type GridContainer
* EXT:form: renderingOptions._isHiddenFormElement and renderingOptions._isReadOnlyFormElement are dropped
* EXT:form: :yaml:`renderingOptions._isHiddenFormElement` and :yaml:`renderingOptions._isReadOnlyFormElement` are dropped
* :php:`$TBE_MODULES`: configuring a module via a custom "configureModuleFunction" is dropped
* CLI Command alias "lang:language:update" is dropped in favor of "language:update"
* Accessing or modifying $_GET/$_POST parameters during any PSR-15 middleware will not reflect any change during the actual Request processing anymore as it is overridden by the incoming PSR-7 request object, but overriden again when the RequestHandler is accessed
* Accessing or modifying :php:`$_GET`/:php:`$_POST` parameters during any PSR-15 middleware will not reflect any change during the actual Request processing anymore as it is overridden by the incoming PSR-7 request object, but overriden again when the RequestHandler is accessed
* Parsing of the legacy `<link>` tags which were migrated to `<a>` tags in Frontend is dropped

The following database tables have been removed:
Expand Down Expand Up @@ -1513,6 +1513,6 @@ The following global instances have been removed:
Impact
======

Instantiating or requiring the PHP classes, calling the PHP methods directly, will result in PHP fatal errors.
Instantiating or requiring the PHP classes or calling the PHP methods directly will trigger PHP :php:`E_ERRER` errors.

.. index:: Backend, CLI, FlexForm, Fluid, Frontend, JavaScript, LocalConfiguration, PHP-API, TCA, TSConfig, TypoScript, PartiallyScanned
Expand Up @@ -33,19 +33,19 @@ If possible, do not create instances yourself. Avoid :php:`GeneralUtility::makeI

.. code-block:: php
public function __constructor(\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper $object)
{
$this->property = $object;
}
public function __constructor(\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper $object)
{
$this->property = $object;
}
If dependency injection is not possible, check the dependencies and instantiate objects via the object manager:

.. code-block:: php
$object = $objectManager->get(
\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper::class,
$objectManager->get(\TYPO3\CMS\Extbase\Reflection\ReflectionService::class),
// ...
);
$object = $objectManager->get(
\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper::class,
$objectManager->get(\TYPO3\CMS\Extbase\Reflection\ReflectionService::class),
// ...
);
.. index:: PHP-API, FullyScanned, ext:extbase
Expand Up @@ -17,7 +17,7 @@ Impact
======

Overriding the property :php:`$namespacesViewObjectNamePattern` in
controllers that extend :php`ActionController` will no longer trigger
controllers that extend :php:`ActionController` will no longer trigger
the instantiation of another view object, derived from the pattern.

Affected Installations
Expand All @@ -28,8 +28,8 @@ All extensions that override the property :php:`$namespacesViewObjectNamePattern
Migration
=========

If an action needs another template object other than the default
If an action needs a template object other than the default
:php:`\TYPO3\CMS\Fluid\View\TemplateView`, the property :php:`$defaultViewObjectName`
needs to be overridden instead.
needs to be overridden.

.. index:: PHP-API, FullyScanned, ext:extbase
Expand Up @@ -17,7 +17,7 @@ Impact
======

Overriding the property :php:`$viewFormatToObjectNameMap` in
controllers that extend :php`ActionController` will no longer trigger
controllers that extend :php:`ActionController` will no longer trigger
the instantiation of another view object, derived from the mapping.

Affected Installations
Expand All @@ -28,8 +28,8 @@ All extensions that override the property :php:`$viewFormatToObjectNameMap`.
Migration
=========

If an action needs another template object other than the default
If an action needs a template object other than the default
:php:`\TYPO3\CMS\Fluid\View\TemplateView`, the property :php:`$defaultViewObjectName`
needs to be overridden instead.
needs to be overridden.

.. index:: PHP-API, FullyScanned, ext:extbase
Expand Up @@ -21,13 +21,13 @@ Impact
Adjusting the cache configuration of either `extbase_reflection`
or `extbase_datamapfactory_datamap` will no longer have any effect.

The installation may throw an error as well depending on the php error level configuration , if the no longer existing
The installation may throw an error depending on the php error level configuration, if the no longer existing
cache keys are written to without initializing them first.

The following entries do no longer exist:
The following global settings do no longer exist:

* `$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['extbase_reflection']`
* `$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['extbase_datamapfactory_datamap']`
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['extbase_reflection']`
* :php:`$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['extbase_datamapfactory_datamap']`

The following code code might throw an error depending on the php error level configuration:

Expand Down
Expand Up @@ -9,7 +9,7 @@ See :issue:`87567`
Description
===========

The global variable used in TYPO3 Backend :php:`$GLOBALS[TBE_TEMPLATE]` which was available
The global variable :php:`$GLOBALS[TBE_TEMPLATE]` used in TYPO3 Backend which was available
for legacy reasons for old backend modules as an instance of :php:`DocumentTemplate` a.k.a. `alt_doc`
has been removed.

Expand All @@ -19,7 +19,7 @@ The according PSR-15 middleware, which was marked as internal, is also removed.
Impact
======

Calling any method or property on :php:`$GLOBALS[TBE_TEMPLATE]` will result in a fatal error.
Calling any method or property on :php:`$GLOBALS[TBE_TEMPLATE]` will trigger a PHP :php:`E_ERROR` error.


Affected Installations
Expand All @@ -34,4 +34,4 @@ Migration
Instantiate the :php:`DocumentTemplate` class directly in the controller of the module, or migrate
to :php:`ModuleTemplate` which is available since TYPO3 v7.

.. index:: PHP-API, FullyScanned, ext:backend
.. index:: PHP-API, FullyScanned, ext:backend
Expand Up @@ -9,7 +9,7 @@ See :issue:`87583`
Description
===========

The Caching framework backend implementation :php:`\TYPO3\CMS\Core\Cache\Backend\ApcBackend` has
The Caching framework backend implementation :php:`TYPO3\CMS\Core\Cache\Backend\ApcBackend` has
been removed. The APCu PHP extension has superseded in PHP 7.x.

Impact
Expand All @@ -22,14 +22,13 @@ Affected Installations
======================

Any installation which has been updated, and any legacy APC cache backend is configured (see
LocalConfiguration).
:file:`LocalConfiguration.php`).

Migration
=========

Use APCu implementation, which is implented via :php:`\TYPO3\CMS\Core\Cache\Backend\ApcuBackend`
instead of :php:`\TYPO3\CMS\Core\Cache\Backend\ApcBackend` in your caching framework
configuration.
Use APCu implementation, which is implemented via :php:`TYPO3\CMS\Core\Cache\Backend\ApcuBackend`
instead of :php:`TYPO3\CMS\Core\Cache\Backend\ApcBackend` in your caching framework configuration.

Example before:

Expand Down
Expand Up @@ -9,7 +9,8 @@ See :issue:`87594`
Description
===========

While hardening Extbase classes, method signatures changed due to an enforced strict type mode and introduced type hints for scalars. The change of signatures is considered breaking for the following methods of the following interfaces and their implementations and for the following classes and their derivatives:
While hardening Extbase classes, method signatures changed due to an enforced strict type mode and introduced type hints for scalars.
The change of signatures is considered breaking for the following methods of the following interfaces and their implementations and for the following classes and their derivatives:

- :php:`\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface::getUid`
- :php:`\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface::setPid`
Expand Down Expand Up @@ -86,8 +87,8 @@ PHP might throw a fatal error if the method signature(s) of your implementations
Affected Installations
======================

- All installations that use classes, that implement mentioned interfaces and their methods.
- All installations that use classes, that inherit mentioned classes and overwrite their methods.
- All installations that use classes that implement mentioned interfaces and their methods.
- All installations that use classes that inherit mentioned classes and overwrite their methods.


Migration
Expand Down
Expand Up @@ -11,7 +11,7 @@ Description

The configuration of classes in the context of the Extbase persistence is no longer possible via typoscript.
All typoscript concerning the configuration of classes in that context needs to be converted to php, residing
in `EXT:Configuration/Extbase/Persistence/Classes.php`.
in :file:`EXT:Configuration/Extbase/Persistence/Classes.php`.


Impact
Expand All @@ -34,7 +34,7 @@ Migration
=========

Every extension that used typoscript for such configuration must provide a php configuration class called:
`EXT:Configuration/Extbase/Persistence/Classes.php`
:file:`EXT:Configuration/Extbase/Persistence/Classes.php`

The migration is best described by an example:

Expand Down Expand Up @@ -83,9 +83,9 @@ This configuration will look like this, defined in php:
A few things are noteworthy here:

- The typoscript node `mapping` has been dropped and all sub nodes like `tableName` and `columns` are now located directly
- The typoscript node :typoscript:`mapping` has been dropped and all sub nodes like :typoscript:`tableName` and :typoscript:`columns` are now located directly
in the top node, i.e. the class name.
- The mapping of columns changed due to the fact that `mapOnProperty` has been dropped and the mapping direction changed.
- The mapping of columns changed due to the fact that :typoscript:`mapOnProperty` has been dropped and the mapping direction changed.
With typoscript the top nodes were called like the class names which indicates the mapping direction model to table. But
then, one had to define a mapping by columns instead of properties, which means, the mapping directions was reversed,
forcing you to map database table fields on properties. This was quite confusing and the configuration is now eased as
Expand Down
Expand Up @@ -24,13 +24,13 @@ Accessing the missing property :php:`$extensionName` will throw a fatal error.
Affected Installations
======================

All installations that read from :php:`\TYPO3\CMS\Extbase\Mvc\Controller\AbstractController::$extensionName`
All installations that read from :php:`\TYPO3\CMS\Extbase\Mvc\Controller\AbstractController::$extensionName`.


Migration
=========

The extension name is set in and available through the request object that is attached to the controller.
The extension name is set in and available through the request object that is available in the controller.
See :php:`\TYPO3\CMS\Extbase\Mvc\Controller\AbstractController::$request` and :php:`\TYPO3\CMS\Extbase\Mvc\Request::getControllerExtensionName()`
for more information.

Expand Down
Expand Up @@ -9,30 +9,30 @@ See :issue:`87936`
Description
===========

The TCA definition for `sys_history` database table was removed. It was never shown in TYPO3 Backend,
The TCA definition for :sql:`sys_history` database table was removed. It was never shown in TYPO3 Backend,
and only in use for the BElog module as Extbase Domain Model. However, this relationship between
logs and sys_history was decoupled in TYP3 v9.0.

The database field "pid" which was "0" at all times, is now removed.
The database field :sql:`pid` which was "0" at all times, is now removed.


Impact
======

Accessing :php:`$GLOBALS[TCA][sys_history]` will trigger a PHP warning, and the contents of the array
Accessing :php:`$GLOBALS[TCA][sys_history]` will trigger a PHP :php:`E_WARNING`, and the contents of the array
are not available anymore.


Affected Installations
======================

Any TYPO3 installation with extensions accessing the global array by making use of
`sys_history`.
:sql:`sys_history`.


Migration
=========

If still needed, an extension should deliver the full TCA definition of `sys_history`.
If still needed, an extension should deliver the full TCA definition of :sql:`sys_history`.

.. index:: Database, TCA, FullyScanned, ext:core
Expand Up @@ -12,25 +12,25 @@ Description
The TCA option :php:`$GLOBALS['TCA'][$myTable]['ctrl']['selicon_field_path']` was removed.

The option allowed to show icons in select items when using :php:`$myTable` as a foreign table
in relations, and was bound to using `selicon_field` as a legacy file ("internal_type=file").
in relations, and was bound to using :php:`selicon_field` as a legacy file (:php:`internal_type=file`).


Impact
======

It is now only possible to use `selicon_field` in inline relations towards `sys_file_reference`.
Setting the `selicon_field_path` has no effect anymore and a deprecation warning will be triggered.
It is now only possible to use :php:`selicon_field` in inline relations towards :php:`sys_file_reference`.
Setting the :php:`selicon_field_path` has no effect anymore and a PHP :php:`E_USER_DEPRECATED` error will be triggered.


Affected Installations
======================

Any TYPO3 installation with an extension providing TCA with `selicon_field_path`.
Any TYPO3 installation with an extension providing TCA with :php:`selicon_field_path`.


Migration
=========

Remove the option `selicon_field_path` and use a inline relation to file references in `selicon_field` instead.
Remove the option :php:`selicon_field_path` and use a inline relation to file references in :php:`selicon_field` instead.

.. index:: TCA, PartiallyScanned, ext:core
Expand Up @@ -9,12 +9,12 @@ See :issue:`87957`
Description
===========

There are several validators that Extbase automatically applies. One of these is domain validators that are registered
There were several validators that Extbase applies automatically. One example are domain validators that are registered
if created in a specific directory. Another one is the type validator which is created if a validator with a specific
name exists.

For this reason, the method :php:`\TYPO3\CMS\Extbase\Utility\ClassNamingUtility::translateModelNameToValidatorName` has
been removed without substitution.
The method :php:`TYPO3\CMS\Extbase\Utility\ClassNamingUtility::translateModelNameToValidatorName` has
been removed without substitution. This leads to no automatically registered validators anymore.

Domain Validators
=================
Expand Down
Expand Up @@ -17,7 +17,7 @@ It allowed to reset a certain field to its default value when copying a record.
Impact
======

Having the setting set in TCA will trigger a deprecation warning when building TCA.
Having the setting set in TCA will trigger a PHP :php:`E_USER_DEPRECATED` error when building TCA.

Copying records with this TCA setting enabled, will now keep the copied state and avoid side-effects.

Expand Down

0 comments on commit 3346400

Please sign in to comment.