sabbelasichon / typo3-rector Goto Github PK
View Code? Open in Web Editor NEWRector for TYPO3
License: MIT License
Rector for TYPO3
License: MIT License
Breaking: #61859 - deprecated file type FILETYPE_SOFTWARE removed
.. include:: ../../Includes.txt
=================================================================
Breaking: #61859 - deprecated file type FILETYPE_SOFTWARE removed
=================================================================
See :issue:61859
Description
===========
The constant :code:\TYPO3\CMS\Core\Resource\AbstractFile::FILETYPE_SOFTWARE
has been removed.
Impact
======
Using the removed constant will result in a fatal error.
Affected installations
======================
Any installation using an extension that uses the constant :code:\TYPO3\CMS\Core\Resource\AbstractFile::FILETYPE_SOFTWARE
.
Migration
=========
Use :code:\TYPO3\CMS\Core\Resource\AbstractFile::FILETYPE_APPLICATION
instead, which matches the Iana standard.
.. index:: PHP-API, FAL
Breaking: #62804 - RTE JavaScript method HTMLArea.Editor::getNodeByPosition was moved
.. include:: ../../Includes.txt
=====================================================================================
Breaking: #62804 - RTE JavaScript method HTMLArea.Editor::getNodeByPosition was moved
=====================================================================================
See :issue:62804
Description
===========
RTE JavaScript method :code:getNodeByPosition()
was moved from HTMLArea.Editor to HTMLArea.DOM.Node where it belongs.
Impact
======
3rd party extensions referring to :code:HTMLArea.Editor::getNodeByPosition()
will fail.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension refers to the method :code:HTMLArea.Editor::getNodeByPosition()
.
Migration
=========
The affected 3rd party extensions must be modified to use method :code:HTMLArea.DOM.Node::getNodeByPosition()
instead.
.. index:: RTE, JavaScript, Backend
Breaking: #62859 - Removal of doc:link.action view helper
.. include:: ../../Includes.txt
=========================================================
Breaking: #62859 - Removal of doc:link.action view helper
=========================================================
See :issue:62859
Description
===========
The view helper :code:\TYPO3\CMS\Documentation\ViewHelpers\Link\Action
has been removed.
Impact
======
Extensions that rely on existence of :code:\TYPO3\CMS\Documentation\ViewHelpers\Link\Action
won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed view helper.
Migration
=========
Either use f:be.buttons.icon or any of f:uri.* view helpers.
.. index:: Fluid, Backend, ext:documentation
Breaking: #62039 - Removed TBE_STYLES[mainColors]
.. include:: ../../Includes.txt
=================================================
Breaking: #62039 - Removed TBE_STYLES[mainColors]
=================================================
See :issue:62039
Description
===========
The values within :code:$TBE_STYLES[mainColors]
are redundant and can be completely defined via CSS nowadays. The
corresponding PHP leftovers are removed from the core and have no effect anymore.
Impact
======
Setting the variables within :code:$TBE_STYLES[mainColors]
and using the :code:$doc->bgColor*
and :code:$doc->hoverColor
properties
of DocumentTemplate have no effect anymore.
Affected installations
======================
Any installation using an extension that is overriding skin info via :code:$TBE_STYLES[mainColors]
.
Migration
=========
Use CSS directly to modify the appearance of the Backend.
.. index:: PHP-API, Backend
Breaking: #60559 - T3skin Backend Login Javascript File Moved
.. include:: ../../Includes.txt
=============================================================
Breaking: #60559 - T3skin Backend Login Javascript File Moved
=============================================================
See :issue:60559
Description
===========
Javascript files of the backend login form moved from EXT:t3skin to EXT:backend.
Impact
======
Javascript or file not found errors.
Affected installations
======================
An installation is affected if a 3rd party extension includes EXT:t3skin/Resources/Public/JavaScript/login.js
Migration
=========
Include EXT:backend/Resources/Public/JavaScript/login.js instead or refactor the affected extension to free it
from the dependency to this core internal file.
.. index:: JavaScript, ext:t3skin, Backend
Breaking: #62673 - Deprecated extbase code is removed
.. include:: ../../Includes.txt
=====================================================
Breaking: #62673 - Deprecated extbase code is removed
=====================================================
See :issue:62673
Description
===========
Generic\Qom\Statement
You may no longer use bound variables without using a prepared statement.
ActionController
Support for old view configuration options templateRootPath, layoutRootPath and partialRootPath is dropped.
Use the new options with fallback mechanism.
Removed PHP classes
QueryObjectModelConstantsInterface
QueryObjectModelFactoryInterface
Removed PHP class members
ActionController::$viewObjectNamePattern is removed without replacement
Repository::$backend is removed, use persistence manager instead
Removed PHP methods
ObjectManager::create() is removed, use ObjectManager::get() instead
ObjectManagerInterface::create() is removed
Persistence\Generic\Backend::replaceObject() is removed without replacement
QuerySettingsInterface::setReturnRawQueryResult() is removed without replacement
QuerySettingsInterface::getReturnRawQueryResult() is removed, use the parameter on $query->execute() directly
Typo3QuerySettings::setSysLanguageUid() is removed, use setLanguageUid() instead
Typo3QuerySettings::getSysLanguageUid() is removed, use getLanguageUid() instead
Impact
======
A call to any of the aforementioned methods by third party code will result in a fatal PHP error.
Affected installations
======================
Any installation which contains third party code still using these deprecated methods.
Migration
=========
Replace the calls with the suggestions outlined above.
.. index:: PHP-API, ext:extbase
Deprecation: #62795 - DocumentTemplate->endPageJS()
.. include:: ../../Includes.txt
===================================================
Deprecation: #62795 - DocumentTemplate->endPageJS()
===================================================
See :issue:62795
Description
===========
Method :code:TYPO3\CMS\Backend\Template\DocumentTemplate::endPageJS()
and the according property :code:endJS
have been marked as deprecated.
Impact
======
None, as it isn't in use anymore since TYPO3 CMS 4.5 and was responsible for notifying the browser that the session
is still active.
Affected installations
======================
Installations misusing top.busy until now for their own good will break.
.. index:: PHP-API, JavaScript, Backend
Breaking: #57382 - Remove old flash message API
.. include:: ../../Includes.txt
===============================================
Breaking: #57382 - Remove old flash message API
===============================================
See :issue:57382
Description
===========
The old flash message API is removed.
Impact
======
Extensions relying on the old (static) flash message queue API will not work anymore.
Extbase removes the protected old flashMessageContainer.
Affected installations
======================
Any installation that uses an extension relying on the old API.
Migration
=========
Change the API calls to not be of static kind anymore.
Extbase extensions have to use getFlashMessageQueue()
of the controllerContext
.. index:: PHP-API
Breaking: #54409 - RTE "acronym" button was renamed "abbreviation"
.. include:: ../../Includes.txt
==================================================================
Breaking: #54409 - RTE "acronym" button was renamed "abbreviation"
==================================================================
See :issue:54409
Description
===========
The "acronym" tag being deprecated, the RTE "acronym" button was renamed "abbreviation".
Accordingly, the RTE Acronym plugin was renamed Abbreviation.
Impact
======
The "abbreviation" button may not appear in the RTE toolbar, if configured as "acronym" in Page TSconfig, TCA special
configuration options and/or User TSconfig. Possible undefined PHP class errors.
Possible Javascript or file not found errors.
Affected installations
======================
An installation is affected if the "acronym" button was configured in Page TSconfig and/or User TSconfig.
An installation is affected if a 3rd party extension refers to the "acronym" button in TCA special configuration options.
An installation is affected if a 3rd party extension refers to class TYPO3\CMS\Rtehtmlarea\Extension\Acronym
An installation is affected if a 3rd party extension loads the JavaScript file of the Acronym plugin: EXT:rtehtmlarea/Resources/Public/Javascript/Plugins/Acronym.js
Migration
=========
There is no immediate impact on the RTE configuration in Page TSconfig and TCA special configuration options until
the automatic conversion of existing references to "acronym" is removed in TYPO3 CMS 8.0.
Intallations may run the upgrade wizard of the Install tool to migrate the contents of Page TSconfig, replacing "acronym" by "abbreviation".
Note that this string replacement will apply to all contents of PageTSconfig.
The migration of PageTSconfig may also be done manually.
User TSconfig must be modified to refer to "abbreviation" instead of "acronym".
Any affected 3rd party extension must be modified to refer to the "abbreviation" button rather than "acronym" in TCA special configuration options.
Any affected 3rd party extension must be modified to refer to class TYPO3\CMS\Rtehtmlarea\Extension\Abbreviation rather than TYPO3\CMS\Rtehtmlarea\Extension\Acronym
Any affected 3rd party extension must be modified to load EXT:rtehtmlarea/Resources/Public/Javascript/Plugins/Abbreviation.js rather than EXT:rtehtmlarea/Resources/Public/Javascript/Plugins/Acronym.js
.. index:: TSConfig, RTE, PHP-API, Backend
Breaking: #75942 - BigDocumentTemplate class removed
.. include:: ../../Includes.txt
====================================================
Breaking: #75942 - BigDocumentTemplate class removed
====================================================
See :issue:75942
Description
===========
The following class has been removed:
:code:\TYPO3\CMS\Backend\Template\BigDocumentTemplate
Impact
======
Extensions that still use the removed class for their backend module won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed class.
Migration
=========
Use :code:\TYPO3\CMS\Backend\Template\DocumentTemplate
instead.
.. index:: PHP-API, Backend
Deprecation: #62363 - TSFE->JSeventFuncCalls disabled
.. include:: ../../Includes.txt
=====================================================
Deprecation: #62363 - TSFE->JSeventFuncCalls disabled
=====================================================
See :issue:62363
Description
===========
TYPO3 CMS provides a way to register direct JS calls to be added to the body tag of the frontend output
to allow several functions to register for e.g. "onload". Nowadays this is done via JS frameworks directly,
or via JS variables.
The functionality has been marked as deprecated.
Impact
======
The core does not use this functionality anymore. Installations with menus using "GMENU_LAYERS",
which has been removed from the core a while ago, but still use it via third-party extensions,
might not work anymore as expected.
Affected installations
======================
All installations which use the :code:$TSFE->JSeventFuncCalls
option, e.g. like GMENU_LAYERS.
Migration
=========
Every call of a 3rd party extension to the mentioned method must be changed to use their own
JS function registration.
.. index:: JavaScript, TypoScript, Frontend
Deprecation: #60574 - Client Related Conditions
.. include:: ../../Includes.txt
===============================================
Deprecation: #60574 - Client Related Conditions
===============================================
See :issue:60574
Description
===========
Conditions that depend on client details are unlovely for a number
of reasons:
Per condition or permutation of conditions that matches, the frontend
creates a different cache entry. This can lead to a very high number
of cache entrys per page
Conditions based on browser or clients on server side are bad practice.
The device information in the core is outdated (for example it is possible to match "AMIGA")
Setups like reverse proxies give additional headaches with these types of conditions
All client related condition types are deprecated with this patch.
Impact
======
Usage of client related TypoScript conditions will result in a deprecation log message. Client related conditions
are browser, version, system and useragent.
Affected installations
======================
Installations using TypoScript conditions for browser, version, system or useragent.
Migration
=========
Most usual conditions for specific browsers can nowadays be turned into conditional CSS includes
Use libraries such as modernizr for browser support
If conditions for specific clients or devices are still needed, they
should be done with a userFunc condition and a project like WURFL
that keep the device information more recent than the current core
code like matching AMIGA
.. index:: TypoScript, Frontend
Breaking: #62914 - Early check for PHP 5.5 in Install Tool
.. include:: ../../Includes.txt
==========================================================
Breaking: #62914 - Early check for PHP 5.5 in Install Tool
==========================================================
See :issue:62914
Description
===========
PHP 5.5 or above is a requirement for TYPO3 CMS7. As code is using specific PHP 5.5 features, an
early check is required in Install Tool.
Impact
======
Install Tool will throw an exception if PHP 5.5 or above is not detected.
Affected installations
======================
Any installation without at least PHP 5.5.0.
Migration
=========
Upgrade to PHP 5.5 or above.
.. index:: PHP-API
Breaking: #62819 - Remove php Localization Support
.. include:: ../../Includes.txt
==================================================
Breaking: #62819 - Remove php Localization Support
==================================================
See :issue:62819
Description
===========
The support for php files in localization, e.g. locallang.php files was deprecated with TYPO3 CMS 4.6. All translations
are done with XLF in the core, XML files are still supported.
The parsing of PHP localization files is now disabled by default, the parsing class is now deprecated.
Impact
======
Extensions using locallang.php files for translation will not show labels anymore.
Affected installations
======================
All installations with third-party extensions using locallang.php translation files.
Migration
=========
Third-party extensions should migrate their translation files to the XLIFF format (XLF file extension). The extension
development extension (Extension Key "extdeveval") can be used to transform locallang.php files to according XLF files.
Until this is done, it is possible to enable this option again by adding the following lines to
typo3conf/AdditionalConfiguration.php:
.. code-block:: php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['lang']['format']['priority'] = 'xlf,xml,php';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['lang']['format']['parser']['php'] = 'TYPO3\\CMS\\Core\\Localization\\Parser\\LocallangArrayParser';
.. index:: PHP-API, Backend, Frontend, LocalConfiguration
Breaking: #62987 - Remove CSH Glossary
.. include:: ../../Includes.txt
======================================
Breaking: #62987 - Remove CSH Glossary
======================================
See :issue:62987
Description
===========
Early TYPO3 versions featured a glossary functionality, served by an extension, with built in switches in the core.
Those switches are now removed.
Impact
======
The functionality is no longer available.
Affected installations
======================
Any installation using the CSH Glossary functionality.
.. index:: PHP-API, Backend
Breaking: #62833 - Removed dividers2tabs functionality
https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/7.0/Breaking-62833-Dividers2Tabs.html
.. include:: ../../Includes.txt
======================================================
Breaking: #62833 - Removed dividers2tabs functionality
======================================================
See :issue:62833
Description
===========
The "dividers2tabs" option in the ctrl section of TCA allows to show tabs in FormEngine while editing records,
instead of showing all fields in one long column. This behaviour is the default since some TYPO3 versions.
This option has no effect anymore, as "dividers2tabs" is removed for TYPO3 CMS Core. The option can also be
safely removed from any extension that adds TCA data.
Impact
======
A third-party extension that overrides the dividers2tabs option for an existing table or that adds a TCA table
with this option disabled will have a record editing with tabs from now on.
Affected installations
======================
Installations with 3rd-party extensions with TCA tables that have "dividers2tabs" disabled.
.. index:: TCA, Backend
Breaking: #62339 - Move EXT:perm into EXT:beuser and remove EXT:perm
.. include:: ../../Includes.txt
====================================================================
Breaking: #62339 - Move EXT:perm into EXT:beuser and remove EXT:perm
====================================================================
See :issue:62339
Description
===========
The extension EXT:perm is removed from core, the perms module is moved into EXT:beuser.
The BE module moved from "Web Access" to "System Access"
Impact
======
Extensions that use EXT:perm or maybe depends on it will cause problems
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses parts the removed extension.
Migration
=========
The logic is moved into EXT:beuser. No special migration is necessary.
.. index:: PHP-API, Backend, ext:beuser
Breaking: #62888 - Remove config.uniqueLinkVars
.. include:: ../../Includes.txt
===============================================
Breaking: #62888 - Remove config.uniqueLinkVars
===============================================
See :issue:62888
Description
===========
The setting :code:config.uniqueLinkVars
has been removed as the behaviour is
now always used.
Migration
=========
Remove the setting :code:config.uniqueLinkVars
from the TypoScript.
.. index:: TypoScript, Frontend
Breaking: #63110 - alt_doc_nodoc.php removed
.. include:: ../../Includes.txt
============================================
Breaking: #63110 - alt_doc_nodoc.php removed
============================================
See :issue:63110
Description
===========
Script entry point typo3/alt_doc_nodoc.php and NoDocumentsOpenController class are removed without substitution.
Impact
======
A script pointing to this file resource will trigger a 404 server response and a script instantiating the class will cause a fatal error.
Affected installations
======================
An extension needs to be adapted in the unlikely case that it uses this code.
Migration
=========
Redirecting to typo3/dummy.php instead.
.. index:: PHP-API, Backend
Breaking: #53658 - option alternateBgColors removed
.. include:: ../../Includes.txt
===================================================
Breaking: #53658 - option alternateBgColors removed
===================================================
See :issue:53658
Description
===========
The PageTSConfig option :code:mod.web_list.alternateBgColors
is removed without substitution.
Impact
======
Extensions that extend the DatabaseRecordList and are using the property :code:alternateBgColors
The option in the TableListViewHelper has been deprecated and will be removed in TYPO3 CMS 8.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed property.
Migration
=========
Remove the call to the removed property.
.. index:: TSConfig, Backend
Breaking: #61471 - EXT:t3skin CSS files moved to less
.. include:: ../../Includes.txt
=====================================================
Breaking: #61471 - EXT:t3skin CSS files moved to less
=====================================================
See :issue:61471
Description
===========
All CSS files in EXT:t3skin are moved to less files and handled by less CSS pre processor
and merged to a single CSS file.
Impact
======
Single CSS files can not be included anymore. This may result in broken layouts.
Affected installations
======================
A TYPO3 instance is affected if an extension loads single CSS files from EXT:t3skin. Backend modules of
extensions usually get CSS core stuff loaded by default, which will not be a problem. An extension is
only affected if single CSS files are explicitly referenced. This should be a rare case.
Migration
=========
Most simple solution is to copy over the "old" CSS file from an older instance. Directly including those
files from t3skin is discouraged. A better solution is to refactor the extension to use the full t3skin
CSS file and to overlay it with required changes in an own file.
.. index:: PHP-API, Backend, ext:t3skin
Breaking: #61823 - Remove magic setter for $fromTC
.. include:: ../../Includes.txt
==================================================
Breaking: #61823 - Remove magic setter for $fromTC
==================================================
See :issue:61823
Description
===========
The magic setter for :code:$fromTC
in \TYPO3\CMS\Core\Database\RelationHandler is removed.
Impact
======
Directly setting the protected property :code:$fromTC
will trigger a PHP warning.
Affected installations
======================
Any installation using an extension that sets :code:$fromTC
property directly.
Migration
=========
Use :code:\TYPO3\CMS\Core\Database\RelationHandler::setFetchAllFields()
instead.
.. index:: PHP-API, Backend
Breaking: #60630 - Scheduler Module Template File Moved
.. include:: ../../Includes.txt
=======================================================
Breaking: #60630 - Scheduler Module Template File Moved
=======================================================
See :issue:60630
Description
===========
The HTML template file for the scheduler module was moved from EXT:scheduler/mod1/mod_template.html
to EXT:scheduler/Resources/Private/Templates/Module.html.
Impact
======
Broken module screen.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses file EXT:scheduler/mod1/mod_template.html
Migration
=========
Use file EXT:scheduler/Resources/Private/Templates/Module.html instead or refactor the affected extension to free it
from the dependency to this scheduler internal file.
.. index:: ext:scheduler, Backend
Breaking: #61785 - loadTCA function in GeneralUtility removed
.. include:: ../../Includes.txt
=============================================================
Breaking: #61785 - loadTCA function in GeneralUtility removed
=============================================================
See :issue:61785
Description
===========
Method :code:loadTCA()
from :code:\TYPO3\CMS\Core\Utility\GeneralUtility
is removed.
Impact
======
Extensions that still use :code:\TYPO3\CMS\Core\Utility\GeneralUtility::loadTCA()
will trigger a fatal error.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension still calls :code:loadTCA
.
Migration
=========
The method is obsolete, full TCA is always loaded in all context except eID.
It is safe to remove the method call.
.. index:: PHP-API
Breaking: #60609 - Configuration Manager Signal Changed
.. include:: ../../Includes.txt
=======================================================
Breaking: #60609 - Configuration Manager Signal Changed
=======================================================
See :issue:60609
Description
===========
The extension for which the configuration was written was added to the signal emitted
in the ConfigurationManager of the ExtensionManager as first parameter as the whole signal was
unusable without this information.
Impact
======
The arguments for a method listening to this signal have changed.
Affected installations
======================
A TYPO3 instance is affected if there is code using the signal "afterExtensionConfigurationWrite".
Migration
=========
Rewrite the listening function to use the extension key as first parameter.
.. index:: PHP-API, Backend, ext:extensionmanager
Breaking: #61863 - deprecated connectDB from EidUtility removed
.. include:: ../../Includes.txt
===============================================================
Breaking: #61863 - deprecated connectDB from EidUtility removed
===============================================================
See :issue:61863
Description
===========
Method :code:connectDB()
from :code:\TYPO3\CMS\Frontend\Utility\EidUtility
has been removed.
Impact
======
Extensions that still use the function :code:connectDB()
will trigger a fatal
PHP error when an eID script is called.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed function.
Migration
=========
The function can be removed safely. The database will connect itself if needed.
.. index:: PHP-API, Frontend
Breaking: #61959 - Move flash message output to alerts
.. include:: ../../Includes.txt
======================================================
Breaking: #61959 - Move flash message output to alerts
======================================================
See :issue:61959
Description
===========
Flash messages are now styled by using the native CSS classes of Twitter Bootstrap. The changed classes are:
"typo3-message message-notice" => "alert alert-notice"
"typo3-message message-information" => "alert alert-info"
"typo3-message message-ok" => "alert alert-success"
"typo3-message message-warning" => "alert alert-warning"
"typo3-message message-error" => "alert alert-danger"
Impact
======
Extensions which use the old classes like "typo3-message message-information" rely on deprecated CSS classes
which might lead to non styled output.
Affected installations
======================
Any installation that uses the HTML of flash messages without calling the API.
Migration
=========
Change the used CSS classes to the new ones.
.. index:: Backend, Frontend
Breaking: #61860 - deprecated function int_from_ver removed
.. include:: ../../Includes.txt
===========================================================
Breaking: #61860 - deprecated function int_from_ver removed
===========================================================
See :issue:61860
Description
===========
Function :code:int_from_ver()
from :code:\TYPO3\CMS\Core\Utility\GeneralUtility
has been removed.
Impact
======
Extensions that still use the function :code:int_from_ver()
won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed function.
Migration
=========
Replace the usage of the removed function with :code:\TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionNumberToInteger()
.. index:: PHP-API
Breaking: #53542 - Removal of deprecated code in sysext fluid
.. include:: ../../Includes.txt
=============================================================
Breaking: #53542 - Removal of deprecated code in sysext fluid
=============================================================
See :issue:53542
Description
===========
ContainerViewHelper
The following options have been removed from the ViewHelper:
enableJumpToUrl
addCssFile
, use includeCssFiles
instead
addJsFile
, use includeJsFiles
instead
AbstractBackendViewHelper
The usage of $GLOBALS['SOBE']
is removed for retrieving the DocumentTemplate instance.
Use ->getDocInstance()
instead.
TemplateView
The following methods have been removed:
getTemplateRootPath()
is removed, use getTemplateRootPaths()
instead
getPartialRootPath()
is removed, use setPartialRootPaths()
instead
getLayoutRootPath()
is removed, use getLayoutRootPaths()
instead
Impact
======
A call to any of the aforementioned methods by third party code will result in a fatal PHP error.
Affected installations
======================
Any installation which contains third party code still using these deprecated methods.
Migration
=========
Replace the calls with the suggestions outlined above.
.. index:: PHP-API, Fluid
Deprecation: #62854 - Abstractplugin->pi_list_searchBox()
.. include:: ../../Includes.txt
=========================================================
Deprecation: #62854 - Abstractplugin->pi_list_searchBox()
=========================================================
See :issue:62854
Description
===========
Method :code:pi_list_searchBox()
of AbstractPlugin (aka pibase) was used with very old
search solutions and is hopelessly outdated. It is now discouraged to be used
and will be removed with next major version.
Impact
======
Extensions still using :code:pi_list_searchBox()
will throw a deprecation warning.
Affected installations
======================
Any extension still using this method needs to be adapted.
.. index:: PHP-API, Frontend
Breaking: #57396 - Deprecated Extbase Property Mapper was removed
.. include:: ../../Includes.txt
=================================================================
Breaking: #57396 - Deprecated Extbase Property Mapper was removed
=================================================================
See :issue:57396
Description
===========
A new Property Mapper that mapped request arguments to controller action arguments
was introduced in Extbase 1.4 and the old one was deprecated at the same time.
Along with the mapping, the validation API has also been changed.
The rewritten property mapper is turned on by default since TYPO3 6.2
Now the old mapping and validation API is completely removed.
Impact
======
Extbase extensions that relied on the internal behaviour of the deprecated property mapper
or make use of the old validation API will stop working or may not work as expected any more.
Affected installations
======================
Extbase extensions that turned off the introduced feature switch with the TypoScript setting
:code:features.rewrittenPropertyMapper = 0
because they relied on internal behavior of the old property mapper
will stop working.
Migration
=========
Manual migration of extension code might be required, especially when own validators using the old
validation API were used.
.. index:: TypoScript, PHP-API, ext:extbase
Breaking: #60561 - Default TypoScript Constants Removed
.. include:: ../../Includes.txt
=======================================================
Breaking: #60561 - Default TypoScript Constants Removed
=======================================================
See :issue:60561
Description
===========
These default TypoScript constants were dropped:
:code:{$_clear}
:code:{$_blackBorderWrap}
:code:{$_tableWrap}
:code:{$_tableWrap_DEBUG}
:code:{$_stdFrameParams}
:code:{$_stdFramesetParams}
Impact
======
Frontend output may change.
Affected installations
======================
A TYPO3 instance is affected if own TypoScript uses the above mentioned TypoScript constants.
Migration
=========
Either remove usage of the above constants or add a snippet at an early point in TypoScript for backwards compatibility.
.. code-block:: typoscript
_clear = <img src="clear.gif" width="1" height="1" alt="" />
_blackBorderWrap = <table border="0" bgcolor="black" cellspacing="0" cellpadding="1"><tr><td> | </td></tr></table>
_tableWrap = <table border="0" cellspacing="0" cellpadding="0"> | </table>
_tableWrap_DEBUG = <table border="1" cellspacing="0" cellpadding="0"> | </table>
_stdFrameParams = frameborder="no" marginheight="0" marginwidth="0" noresize="noresize"
_stdFramesetParams = 'border="0" framespacing="0" frameborder="no"
.. index:: TypoScript, Frontend
Deprecation: #62893 - Flashmessage JavaScript object TYPO3.Flashmessages was moved
.. include:: ../../Includes.txt
==================================================================================
Deprecation: #62893 - Flashmessage JavaScript object TYPO3.Flashmessages was moved
==================================================================================
See :issue:62893
Description
===========
Flashmessages JavaScript object has been moved from TYPO3.Flashmessages
to top.TYPO3.Flashmessages
.
The severity constant values has been changed to correspond to the same values (-2,-1,0,1,2) of the constants as in PHP.
The constants TYPO3.Severity.information
have been marked as deprecated.
3rd party extensions referring to TYPO3.Severity.information
will work until CMS 9.
A compatibility file was introduced to map TYPO3.Flashmessages
to top.TYPO3.Flashmessages
, will also work until CMS 9.
Impact
======
If a 3rd party extension calls the mentioned methods directly, a deprecation log will be written to the browser console.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension refers to the method TYPO3.Flashmessages.display()
or uses TYPO3.Severity.information
constants.
Migration
=========
The affected 3rd party extensions must be modified to use top.TYPO3.Flashmessages
instead of TYPO3.Flashmessages
.
Example:
.. code-block:: javascript
// Old and deprecated:
TYPO3.Flashmessages.display(TYPO3.Severity.notice)
// New and the only correct way:
top.TYPO3.Flashmessages.display(top.TYPO3.Severity.notice)
The TYPO3.Severity
object has been moved to top.TYPO3.Severity
. Use top.TYPO3.Severity.*
instead.
.. index:: JavaScript, Backend
Breaking: #61786 - remove deprecated TypeHandlingService in extbase
.. include:: ../../Includes.txt
===================================================================
Breaking: #61786 - remove deprecated TypeHandlingService in extbase
===================================================================
See :issue:61786
Description
===========
The TypeHandlingService class is removed from the extbase extension.
Impact
======
Extensions that still use :code:\TYPO3\CMS\Extbase\Service\TypeHandlingService
won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed class :code:\TYPO3\CMS\Extbase\Service\TypeHandlingService
.
Migration
=========
Replace all calls to :code:\TYPO3\CMS\Extbase\Service\TypeHandlingService
functions to their new static functions
in :code:\TYPO3\CMS\Extbase\Utility\TypeHandlingUtility
.. index:: PHP-API, ext:extbase
Breaking: #60630 - Scheduler Javascript File Moved
.. include:: ../../Includes.txt
==================================================
Breaking: #60630 - Scheduler Javascript File Moved
==================================================
See :issue:60630
Description
===========
Javascript files of the scheduler module moved from EXT:scheduler/res/tx_scheduler_be.js to
EXT:scheduler/Resources/Public/JavaScript/Scheduler.js
Impact
======
Javascript or file not found errors.
Affected installations
======================
An installation is affected if a 3rd party extension includes EXT:scheduler/res/tx_scheduler_be.js
Migration
=========
Include EXT:scheduler/Resources/Public/JavaScript/Scheduler.js instead or refactor the affected extension to free it
from the dependency to this scheduler internal file.
.. index:: JavaScript, Backend, ext:scheduler
Breaking: #63056 - Remove Template Selection Hack
.. include:: ../../Includes.txt
=================================================
Breaking: #63056 - Remove Template Selection Hack
=================================================
See :issue:63056
Description
===========
There has been an ancient hack for the former "freesite" extension, which enabled selection
of the template via GET variable.
This technique is outdated and has been removed.
Impact
======
Any extension using this hack will not be able to select the template this way anymore.
Affected installations
======================
Installations with third party extensions using the hack.
Migration
=========
No migration path intended.
.. index:: PHP-API, Frontend
Breaking: #60559 - Dropped Backend Login Options
.. include:: ../../Includes.txt
================================================
Breaking: #60559 - Dropped Backend Login Options
================================================
See :issue:60559
Description
===========
Handling of :code:$GLOBALS['TBE_STYLES']['loginBoxImage_rotationFolder']
and :code:$GLOBALS['TBE_STYLES']['loginBoxImage_author']
was dropped.
Impact
======
Setting those options has no effect anymore.
Affected installations
======================
These options had no effect with standard core internal login screen based on t3skin for a long time already. Instances are
only affected if a 3rd party extension is loaded that changes the backend login screen and operates with these settings.
Migration
=========
Remove these options and their usage from the affected 3rd party extension or unload the extension.
.. index:: Backend, ext:t3skin
Breaking: #60630 - Scheduler Language Files Moved
.. include:: ../../Includes.txt
=================================================
Breaking: #60630 - Scheduler Language Files Moved
=================================================
See :issue:60630
Description
===========
The language files of the scheduler extension are moved to EXT:scheduler/Resources/Private/Language/
Impact
======
Labels are not translated when being fetched from old file location.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses a language file from EXT:scheduler
or if localization overrides of these files are registered. Those overridden labels may not
work anymore.
Migration
=========
Use new path to language file instead or create/copy the labels to an own language file and
adapt existing overrides to the new file locations.
.. index:: Backend, ext:scheduler
Breaking: #61782 - deprecated DocumentTemplate classes removed
.. include:: ../../Includes.txt
==============================================================
Breaking: #61782 - deprecated DocumentTemplate classes removed
==============================================================
See :issue:61782
Description
===========
The following deprecated classes have been removed:
:code:\TYPO3\CMS\Backend\Template\MediumDocumentTemplate
:code:\TYPO3\CMS\Backend\Template\SmallDocumentTemplate
:code:\TYPO3\CMS\Backend\Template\StandardDocumentTemplate
Impact
======
Extensions that still use one of the removed classes for their backend module won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses one of the removed classes.
Migration
=========
Use :code:\TYPO3\CMS\Backend\Template\DocumentTemplate
instead.
.. index:: PHP-API, Backend
Breaking: #59659 - Removal of deprecated code in sysext backend
.. include:: ../../Includes.txt
===============================================================
Breaking: #59659 - Removal of deprecated code in sysext backend
===============================================================
See :issue:59659
Description
===========
Flexforms
Flexform xml that still contains the old "<tx_templavoila><title>" code has to be adapted.
The "<tx_templavoila>" elements needs to be removed.
Wizard registration
Wizard registration in TCA must not contain the "script=some/path/script.php" definition anymore.
The new API for registering wizards is to set "module[name]=module_name".
Removed PHP methods
AbstractRecordList::writeBottom()
is removed without replacement. The functionality is not needed anymore.
SpriteGenerator::setOmmitSpriteNameInIconName()
is removed in favor of setOmitSpriteNameInIconName()
DocumentTemplate::isCMlayers()
is removed without replacement. The functionality is obsolete.
DocumentTemplate::getFileheader()
is removed. Use getResourceHeader()
instead.
BackendUtility::displayWarningMessages()
is removed without replacement. The functionality was moved to ext:aboutmodules.
IconUtility::getIconImage()
is removed without replacement. Use sprite icon API instead.
PageLayoutView::getSelectedBackendLayoutUid()
is removed. Use BackendLayoutView::getSelectedCombinedIdentifier()
instead.
ClickMenu::menuItemsForClickMenu()
is removed without replacement. The functionality is obsolete.
Removed JS functions
showClickmenu_noajax()
is removed. Use Clickmenu.ajax = false; showClickmenu_raw();
instead.
setLayerObj()
is replaced with Clickmenu.populateData()
.
hideEmpty()
is replaced with Clickmenu.hideAll()
.
hideSpecific()
is replaced with Clickmenu.hide()
. E.g. Clickmenu.hide('contentMenu1');
showHideSelectorBoxes()
is replaced with toggleSelectorBoxes()
.
Impact
======
A call to any of the aforementioned methods by third party code will result in
a fatal PHP error.
Affected installations
======================
Any installation which contains third party code still using these deprecated methods.
Migration
=========
Replace the calls with the suggestions outlined above.
.. index:: PHP-API, Backend
Breaking: #62291 - RTE wizard classes renamed
.. include:: ../../Includes.txt
=============================================
Breaking: #62291 - RTE wizard classes renamed
=============================================
See :issue:62291
Description
===========
The following two RTE classes were renamed:
TYPO3\CMS\Rtehtmlarea\ContentParser renamed to TYPO3\CMS\Rtehtmlarea\Controller\ParseHtmlController
TYPO3\CMS\Rtehtmlarea\User renamed to TYPO3\CMS\Rtehtmlarea\Controller\UserElementsController
Impact
======
3rd party extensions referring to an old class name will fail.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension refers to a renamed class by its old name.
Migration
=========
The affected 3rd party extensions must be modified to use the new names of these classes.
.. index:: PHP-API, RTE, Backend
Breaking: #62291 - RTE Deprecated JavaScript methods removed
.. include:: ../../Includes.txt
============================================================
Breaking: #62291 - RTE Deprecated JavaScript methods removed
============================================================
See :issue:62291
Description
===========
The following RTE JavaScript methods, deprecated since TYPO3 4.7, have been removed:
HTMLArea.Editor.forceRedraw: use HTMLArea.Framework.doLayout instead
HTMLArea.Editor.convertNode: use HTMLArea.DOM.convertNode instead
HTMLArea.Editor.getBlockAncestors: use HTMLArea.DOM.getBlockAncestors instead
HTMLArea.getInnerText: use HTMLArea.DOM.getInnerText instead
HTMLArea.hasAllowedAttributes: use HTMLArea.DOM.hasAllowedAttributes instead
HTMLArea.isBlockElement: use HTMLArea.DOM.isBlockElement instead
HTMLArea.needsClosingTag: use HTMLArea.DOM.needsClosingTag instead
HTMLArea.Editor.rangeIntersectsNode: use HTMLArea.DOM.rangeIntersectsNode instead
HTMLArea.removeFromParent: use HTMLArea.DOM.removeFromParent instead
HTMLArea.Editor.cleanAppleStyleSpans: use HTMLArea.DOM.Node.cleanAppleStyleSpans instead
HTMLArea.Editor.removeMarkup: use HTMLArea.DOM.Node.removeMarkup instead
HTMLArea.Editor.wrapWithInlineElement: use HTMLArea.DOM.Node.wrapWithInlineElement instead
HTMLArea.Editor.addRangeToSelection: use HTMLArea.DOM.Selection.addRange instead
HTMLArea.Editor._createRange: use HTMLArea.DOM.Selection.createRange instead
HTMLArea.Editor.emptySelection: use HTMLArea.DOM.Selection.empty instead
HTMLArea.Editor.endPointsInSameBlock: use HTMLArea.DOM.Selection.endPointsInSameBlock instead
HTMLArea.Editor.execCommand: use HTMLArea.DOM.Selection.execCommand instead
HTMLArea.Editor._getSelection: use HTMLArea.DOM.Selection.get instead
HTMLArea.Editor.getAllAncestors: use HTMLArea.DOM.Selection.getAllAncestors instead
HTMLArea.Editor.getSelectedElement: use HTMLArea.DOM.Selection.getElement instead
HTMLArea.Editor.getEndBlocks: use HTMLArea.DOM.Selection.getEndBlocks instead
HTMLArea.Editor._getFirstAncestor: use HTMLArea.DOM.Selection.getFirstAncestorOfType instead
HTMLArea.Editor.getFullySelectedNode: use HTMLArea.DOM.Selection.getFullySelectedNode instead
HTMLArea.Editor.getSelectedHTML: use HTMLArea.DOM.Selection.getHtml instead
HTMLArea.Editor.getSelectedHTMLContents: use HTMLArea.DOM.Selection.getHtml instead
HTMLArea.Editor.getParentElement: use HTMLArea.DOM.Selection.getParentElement instead
HTMLArea.Editor.getSelectionRanges: use HTMLArea.DOM.Selection.getRanges instead
HTMLArea.Editor.getSelectionType: use HTMLArea.DOM.Selection.getType instead
HTMLArea.Editor.insertHTML: use HTMLArea.DOM.Selection.insertHtml instead
HTMLArea.Editor.insertNodeAtSelection: use HTMLArea.DOM.Selection.insertNode instead
HTMLArea.Editor._selectionEmpty: use HTMLArea.DOM.Selection.isEmpty instead
HTMLArea.Editor.hasSelectedText: use !HTMLArea.DOM.Selection.isEmpty instead
HTMLArea.Editor.selectNode: use HTMLArea.DOM.Selection.selectNode instead
HTMLArea.Editor.selectNodeContents: use HTMLArea.DOM.Selection.selectNodeContents instead
HTMLArea.Editor.selectRange: use HTMLArea.DOM.Selection.selectRange instead
HTMLArea.Editor.setSelectionRanges: use HTMLArea.DOM.Selection.setRanges instead
HTMLArea.Editor.surroundHTML: use HTMLArea.DOM.Selection.surroundHtml instead
HTMLArea.Editor.getBookmark: use HTMLArea.DOM.BookMark.get instead
HTMLArea.Editor.getBookmarkNode: use HTMLArea.DOM.BookMark.getEndPoint instead
HTMLArea.Editor.moveToBookmark: use HTMLArea.DOM.BookMark.moveTo instead
HTMLArea.htmlDecode: use HTMLArea.util.htmlDecode instead
HTMLArea.htmlEncode: use HTMLArea.util.htmlEncode instead
Impact
======
3rd party extensions adding plugins to the RTE and using the removed methods will fail.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension of the RTE refers to the removed methods.
Migration
=========
The affected 3rd party extensions must be modified to use the replacement methods.
.. index:: JavaScript, RTE, Backend
Breaking: #33805 - ClickMenu Rewrite
.. include:: ../../Includes.txt
====================================
Breaking: #33805 - ClickMenu Rewrite
====================================
See :issue:33805
Description
===========
The ClickMenu has seen some major changes under the hood. This implies some refactoring within JavaScript where existing
functionality is replaced by a AMD Module based on jQuery. The following JS methods are now replaced by respective
methods:
showClickmenu_raw()
Clickmenu.show()
Clickmenu.populateData()
The new functionality is available via a global JavaScript object called TYPO3.ClickMenu which has equal
functions.
Additionally the ClickMenu is now used via AJAX completely, all non-AJAX calls are not supported anymore.
Impact
======
All third-party extensions using alt_clickmenu.php directly in the backend, or using the above JavaScript calls directly.
Affected installations
======================
Any installation using extensions having Backend modules using JavaScript functions for the ClickMenu inline
and installations using extensions using alt_clickmenu.php directly.
Migration
=========
Any use of "Clickmenu.show()" etc should be avoided and channelled through the according DocumentTemplate methods.
BackendUtility::wrapClickMenuOnIcon()
DocumentTemplate->getContextMenuCode()
If a backend module without a DocumentTemplate (with e.g. Extbase/Fluid) is used, this is done with a separate class
and related data attribute:
.. code-block:: html
<a href="#" class="t3-js-clickmenutrigger" data-table="be_users" data-uid="{record.uid}" data-listframe="1">
.. index:: PHP-API, Backend
Deprecation: #62800 - Workspaces ToolbarItem via ExtDirect
.. include:: ../../Includes.txt
==========================================================
Deprecation: #62800 - Workspaces ToolbarItem via ExtDirect
==========================================================
See :issue:62800
Description
===========
The PHP functionality for switching a workspace was done with the ExtDirect call :code:TYPO3.Ajax.ExtDirect.ToolbarMenu
until now. This has been replaced by a simple AJAX JSON call, based on jQuery and the refactored ToolbarItem Menu for
the workspaces module.
Impact
======
The core does not use this functionality anymore, and also removed the ExtDirect registration for this class.
Affected installations
======================
All installations which directly used the ExtDirect :code:TYPO3.Ajax.ExtDirect.ToolbarMenu
to fetch the data.
Migration
=========
Use the new AjaxHandler :code:Workspaces::setWorkspace()
directly instead.
.. index:: PHP-API, JavaScript, Backend, ext:workspaces
Breaking: #61459 - Removal of tslib directory and constant
https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/7.0/Breaking-61459-RemovalTslib.html
.. include:: ../../Includes.txt
==========================================================
Breaking: #61459 - Removal of tslib directory and constant
==========================================================
See :issue:61459
Description
===========
The tslib/ directory and the constant PATH_tslib were removed.
Impact
======
Extensions that still use PATH_tslib constant, and reference typo3/sysext/cms/tslib/index_ts.php directly won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses :file:index_ts.php
directly, or if the main
:file:index.php
is not replaced with the TYPO3 Update (used on certain install types). The index.php file must be
replaced with the current version from the TYPO3 CMS Core.
Besides scripts are affected that access the time tracking (:code:$TT
) or typoscript frontend controller (:code:$TSFE
)
objects instead of using :code:$GLOBALS['TT']
respectively :code:$GLOBALS['TSFE']
.
Migration
=========
Remove the constant PATH_tslib from the 3rd party extension, use a current version of index.php and use :code:$GLOBALS['TT']
and :code:$GLOBALS['TSFE']
where necessary.
.. index:: PHP-API, Frontend
Breaking: #60135 - Recursive stdWrap is now only called once
.. include:: ../../Includes.txt
============================================================
Breaking: #60135 - Recursive stdWrap is now only called once
============================================================
See :issue:60135
Description
===========
If recursive stdWrap configuration was used, the stdWrap method was called twice, although the content
was only rendered once. This performance overhead is now removed.
Impact
======
If a recursive stdWrap configuration is used, which sets or acts on a global state like registers,
the resulting rendering can now be different because the global state is now modified only once.
Affected installations
======================
A TYPO3 instance is affected if there is TypoScript code like:
::
page.1 = TEXT
page.1 {
value = Counter:
append = TEXT
append.data = register:Counter
stdWrap.append = LOAD_REGISTER
stdWrap.append {
Counter.cObject = TEXT
Counter.cObject.data = register:Counter
Counter.cObject.wrap = |+1
Counter.prioriCalc = 1
}
}
..
This now correctly outputs Counter:1
instead of Counter:2
Migration
=========
The usage of recursive stdWrap TypoScript configuration needs to be checked and probably adapted to fit the fixed behavior.
.. index:: TypoScript, Frontend
Breaking: #62595 - Remove SU change-to mode
.. include:: ../../Includes.txt
===========================================
Breaking: #62595 - Remove SU change-to mode
===========================================
See :issue:62595
Description
===========
The permanent user switch has been removed from backend user list for a better UX.
Impact
======
The parameter "emulate" in the view helper "SwitchUser" is dropped. Using the
argument causes an error "Argument "emulate" was not registered".
Affected installations
======================
Any installation using an extension that uses the view helper "SwitchUser" with
"emulate" argument.
Migration
=========
Drop the "emulate" argument in the view helper call.
.. index:: Fluid, Backend
Breaking: #61820 - deprecated PhpOptionsUtility functions removed
.. include:: ../../Includes.txt
=================================================================
Breaking: #61820 - deprecated PhpOptionsUtility functions removed
=================================================================
See :issue:61820
Description
===========
The :code:\TYPO3\CMS\Core\Utility\PhpOptionsUtility
functions isSafeModeEnabled and isMagicQuotesGpcEnabled are removed.
Impact
======
Extensions that still use one of the removed functions won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses one of the removed functions.
Migration
=========
Remove the call to :code:\TYPO3\CMS\Core\Utility\PhpOptionsUtility::isSafeModeEnabled()
or :code:\TYPO3\CMS\Core\Utility\PhpOptionsUtility::isMagicQuotesGpcEnabled()
functions.
The Install Tool takes care of the removed checks now.
.. index:: PHP-API
Breaking: #61785 - getCompressedTCarray and includeTCA from TypoScriptFrontendController removed
.. include:: ../../Includes.txt
================================================================================================
Breaking: #61785 - getCompressedTCarray and includeTCA from TypoScriptFrontendController removed
================================================================================================
See :issue:61785
Description
===========
Methods :code:getCompressedTCarray()
and :code:includeTCA()
from :code:\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController
have been removed.
Impact
======
Extensions that still use :code:\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::getCompressedTCarray()
or :code:\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::includeTCA()
will trigger a fatal error.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses one of the removed functions.
Migration
=========
Full TCA is always loaded during bootstrap in FE, the methods are obsolete.
If an eid script calls this method to load TCA, use :code:\TYPO3\CMS\Frontend\Utility\EidUtility::initTCA()
instead.
.. index:: PHP-API, Frontend
Breaking: #62733 - RTE Javascript Files Moved
.. include:: ../../Includes.txt
=============================================
Breaking: #62733 - RTE Javascript Files Moved
=============================================
See :issue:62733
Description
===========
Javascript files of the rtehtmlarea extension were moved from EXT:rtehtmlarea/htmlarea/ to
EXT:rtehtmlarea/Resources/Public/JavaScript/
Impact
======
Javascript or file not found errors.
Affected installations
======================
An installation is affected if a 3rd party extension loads any JavaScript file from EXT:rtehtmlarea/htmlarea/
Migration
=========
Any affected 3rd party extension must be modified to load any JavaScript file from EXT:rtehtmlarea/Resources/Public/JavaScript/ instead.
.. index:: JavaScript, RTE, Backend
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.