TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+53
@@ -0,0 +1,53 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-86225:
|
||||
|
||||
========================================================================
|
||||
Deprecation: #86225 - Classes BaseScriptClass and AbstractFunctionModule
|
||||
========================================================================
|
||||
|
||||
See :issue:`86225`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The two classes :php:`TYPO3\CMS\Backend\Module\BaseScriptClass`, also known as
|
||||
:php:`t3lib_SCbase` and :php:`TYPO3\CMS\Backend\Module\AbstractFunctionModule`,
|
||||
also known as :php:`t3lib_extobjbase` have been marked as deprecated and will be removed
|
||||
in TYPO3 v10.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using one of the classes will trigger a :php:`E_USER_DEPRECATED` error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The :php:`BaseScriptClass` has been commonly extended by extensions that add own
|
||||
backend modules and did not rely on extbase for that. There is nothing wrong
|
||||
with not using extbase, but most of the methods from :php:`BaseScriptClass`
|
||||
were unused by own extensions and hard to understand, too.
|
||||
|
||||
Class :php:`AbstractFunctionModule` has been extended by some extensions that
|
||||
add own sub modules to the Page -> Info or the Page -> Template view.
|
||||
|
||||
The extension scanner will find possible usages.
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
A migration is often relatively simple: Extensions that extend :php:`BaseScriptClass`
|
||||
should verify which methods and properties are actually used from the parent class. The
|
||||
most simple solution is to just copy those over to the own class and remove the
|
||||
inheritance. It is good practice to at least change their visibility from :php:`public`
|
||||
to :php:`protected` at the same time if possible.
|
||||
|
||||
Extensions that extend :php:`AbstractFunctionModule` should do the same. The main `info`
|
||||
and `tstemplate` controllers typically only call the methods :php:`init()` and :php:`main()`
|
||||
of those classes as entry points, those need to be kept public.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned
|
||||
Reference in New Issue
Block a user