54 lines
1.9 KiB
ReStructuredText
54 lines
1.9 KiB
ReStructuredText
.. 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
|