TYPO3 Logo
TYPO3 Core Changelog
Options
Give feedback View source How to edit Edit on GitHub Full documentation (single file)

TYPO3 Core Changelog

  • ChangeLog v14
    • 14.0 Changes
    • 14.x Changes by type
  • ChangeLog v13
    • 13.4.x Changes
    • 13.4 Changes
    • 13.3 Changes
    • 13.2 Changes
    • 13.1 Changes
    • 13.0 Changes
    • 13.x Changes by type
  • ChangeLog v12
    • 12.4.x Changes
    • 12.4 Changes
    • 12.3 Changes
    • 12.2 Changes
    • 12.1 Changes
    • 12.0 Changes
    • 12.x Changes by type
  • ChangeLog v11
    • 11.5.x Changes
    • 11.5 Changes
    • 11.4 Changes
    • 11.3 Changes
    • 11.2 Changes
    • 11.1 Changes
    • 11.0 Changes
    • 11.x Changes by type
  • ChangeLog v10
    • 10.4.x Changes
    • 10.4 Changes
    • 10.3 Changes
    • 10.2 Changes
    • 10.1 Changes
    • 10.0 Changes
    • 10.x Changes by type
  • ChangeLog v9
    • 9.5.x Changes
    • 9.5 Changes
    • 9.4 Changes
    • 9.3 Changes
    • 9.2 Changes
    • 9.1 Changes
    • 9.0 Changes
    • 9.x Changes by type
  • ChangeLog v8
    • 8.7.x Changes
    • 8.7 Changes
    • 8.6 Changes
    • 8.5 Changes
    • 8.4 Changes
    • 8.3 Changes
    • 8.2 Changes
    • 8.1 Changes
    • 8.0 Changes
    • 8.x Changes by type
  • ChangeLog v7
    • 7.6.x Changes
    • 7.6 Changes
    • 7.5 Changes
    • 7.4 Changes
    • 7.3 Changes
    • 7.2 Changes
    • 7.1 Changes
    • 7.0 Changes
    • 7.x Changes by type
  • Documenting Changes
  • Sitemap
  1. TYPO3 Core Changelog
  2. ChangeLog v10
  3. 10.4 Changes
  4. Important: #91095 - Various methods and properties of Backend-related Core APIs now internal
Give feedback Edit on GitHub

Important: #91095 - Various methods and properties of Backend-related Core APIs now internal

See forge#91095

Description

Some cornerstones of TYPO3 Core have been kept and migrated since before TYPO3 v4.0. This was when PHP 5 and class visibility was not even available.

Most classes contain various methods which have been marked as "public", making it public API for TYPO3, even though their usages should only be available for TYPO3 Core.

All methods are now marked as "@internal", as official Core API should be used instead.

DataHandler class properties and methods: Except for the public methods that are still available, it is highly recommended to use DataHandler as defined in the official documentation.

The following properties and methods are now marked as internal:

  • DataHandler->checkSimilar
  • DataHandler->bypassWorkspaceRestrictions
  • DataHandler->copyWhichTables
  • DataHandler->defaultValues
  • DataHandler->overrideValues
  • DataHandler->data_disableFields
  • DataHandler->callBackObj
  • DataHandler->autoVersionIdMap
  • DataHandler->substNEWwithIDs_table
  • DataHandler->newRelatedIDs
  • DataHandler->copyMappingArray_merged
  • DataHandler->errorLog
  • DataHandler->pagetreeRefreshFieldsFromPages
  • DataHandler->pagetreeNeedsRefresh
  • DataHandler->userid
  • DataHandler->username
  • DataHandler->admin
  • DataHandler->sortIntervals
  • DataHandler->dbAnalysisStore
  • DataHandler->registerDBList
  • DataHandler->registerDBPids
  • DataHandler->copyMappingArray
  • DataHandler->remapStack
  • DataHandler->remapStackRecords
  • DataHandler->updateRefIndexStack
  • DataHandler->callFromImpExp
  • DataHandler->checkValue_currentRecord
  • DataHandler->setControl()
  • DataHandler->setMirror()
  • DataHandler->setDefaultsFromUserTS()
  • DataHandler->hook_processDatamap_afterDatabaseOperations()
  • DataHandler->placeholderShadowing()
  • DataHandler->getPlaceholderTitleForTableLabel()
  • DataHandler->fillInFieldArray()
  • DataHandler->checkValue()
  • DataHandler->checkValue_SW()
  • DataHandler->checkValue_flexArray2Xml()
  • DataHandler->checkValue_inline()
  • DataHandler->checkValueForInline()
  • DataHandler->checkValue_checkMax()
  • DataHandler->getUnique()
  • DataHandler->getRecordsWithSameValue()
  • DataHandler->checkValue_text_Eval()
  • DataHandler->checkValue_input_Eval()
  • DataHandler->checkValue_group_select_processDBdata()
  • DataHandler->checkValue_group_select_explodeSelectGroupValue()
  • DataHandler->checkValue_flex_procInData()
  • DataHandler->checkValue_flex_procInData_travDS()
  • DataHandler->copyRecord()
  • DataHandler->copyPages()
  • DataHandler->copySpecificPage()
  • DataHandler->copyRecord_raw()
  • DataHandler->insertNewCopyVersion()
  • DataHandler->copyRecord_flexFormCallBack()
  • DataHandler->copyL10nOverlayRecords()
  • DataHandler->moveRecord()
  • DataHandler->moveRecord_raw()
  • DataHandler->moveRecord_procFields()
  • DataHandler->moveRecord_procBasedOnFieldType()
  • DataHandler->moveL10nOverlayRecords()
  • DataHandler->localize()
  • DataHandler->deleteAction()
  • DataHandler->deleteEl()
  • DataHandler->deleteVersionsForRecord()
  • DataHandler->undeleteRecord()
  • DataHandler->deleteRecord()
  • DataHandler->deletePages()
  • DataHandler->canDeletePage()
  • DataHandler->cannotDeleteRecord()
  • DataHandler->isRecordUndeletable()
  • DataHandler->deleteRecord_procFields()
  • DataHandler->deleteRecord_procBasedOnFieldType()
  • DataHandler->deleteL10nOverlayRecords()
  • DataHandler->versionizeRecord()
  • DataHandler->version_remapMMForVersionSwap()
  • DataHandler->version_remapMMForVersionSwap_flexFormCallBack()
  • DataHandler->version_remapMMForVersionSwap_execSwap()
  • DataHandler->remapListedDBRecords()
  • DataHandler->remapListedDBRecords_flexFormCallBack()
  • DataHandler->remapListedDBRecords_procDBRefs()
  • DataHandler->remapListedDBRecords_procInline()
  • DataHandler->processRemapStack()
  • DataHandler->addRemapAction()
  • DataHandler->addRemapStackRefIndex()
  • DataHandler->getVersionizedIncomingFieldArray()
  • DataHandler->checkModifyAccessList()
  • DataHandler->isRecordInWebMount()
  • DataHandler->isInWebMount()
  • DataHandler->checkRecordUpdateAccess()
  • DataHandler->checkRecordInsertAccess()
  • DataHandler->isTableAllowedForThisPage()
  • DataHandler->doesRecordExist()
  • DataHandler->doesBranchExist()
  • DataHandler->tableReadOnly()
  • DataHandler->tableAdminOnly()
  • DataHandler->destNotInsideSelf()
  • DataHandler->getExcludeListArray()
  • DataHandler->doesPageHaveUnallowedTables()
  • DataHandler->pageInfo()
  • DataHandler->recordInfo()
  • DataHandler->getRecordProperties()
  • DataHandler->getRecordPropertiesFromRow()
  • DataHandler->eventPid()
  • DataHandler->updateDB()
  • DataHandler->insertDB()
  • DataHandler->checkStoredRecord()
  • DataHandler->setHistory()
  • DataHandler->updateRefIndex()
  • DataHandler->getSortNumber()
  • DataHandler->newFieldArray()
  • DataHandler->addDefaultPermittedLanguageIfNotSet()
  • DataHandler->overrideFieldArray()
  • DataHandler->compareFieldArrayWithCurrentAndUnset()
  • DataHandler->convNumEntityToByteValue()
  • DataHandler->deleteClause()
  • DataHandler->getTableEntries()
  • DataHandler->getPID()
  • DataHandler->dbAnalysisStoreExec()
  • DataHandler->int_pageTreeInfo()
  • DataHandler->compileAdminTables()
  • DataHandler->fixUniqueInPid()
  • DataHandler->fixCopyAfterDuplFields()
  • DataHandler->isReferenceField()
  • DataHandler->getInlineFieldType()
  • DataHandler->getCopyHeader()
  • DataHandler->prependLabel()
  • DataHandler->resolvePid()
  • DataHandler->clearPrefixFromValue()
  • DataHandler->isRecordCopied()
  • DataHandler->log()
  • DataHandler->newlog()
  • DataHandler->printLogErrorMessages()
  • DataHandler->insertUpdateDB_preprocessBasedOnFieldType()
  • DataHandler->hasDeletedRecord()
  • DataHandler->getAutoVersionId()
  • DataHandler->getHistoryRecords()

The reason for this long list is this: If the DataHandler API is not called via start() and the process_* methods, but rather the methods would be called directly, certain hooks would be disabled completely, resulting in a huge data inconsistency.

At this point, it is highly recommended to use the official API of DataHandler as written in the main documentation.

Various BackendUtility class methods are called statically, but cannot guarantee any Context. Short-hand functions for TCA or Database Queries are now better suited by using the appropriate Database Restrictions.

  • BackendUtility::purgeComputedPropertiesFromRecord()
  • BackendUtility::purgeComputedPropertyNames()
  • BackendUtility::splitTable_Uid()
  • BackendUtility::BEenableFields()
  • BackendUtility::openPageTree()
  • BackendUtility::getUserNames()
  • BackendUtility::getGroupNames()
  • BackendUtility::blindUserNames()
  • BackendUtility::blindGroupNames()
  • BackendUtility::getCommonSelectFields()
  • BackendUtility::helpTextArray()
  • BackendUtility::helpText()
  • BackendUtility::wrapInHelp()
  • BackendUtility::softRefParserObj()
  • BackendUtility::explodeSoftRefParserList()
  • BackendUtility::selectVersionsOfRecord()
  • BackendUtility::fixVersioningPid()
  • BackendUtility::movePlhOL()
  • BackendUtility::getLiveVersionIdOfRecord()
  • BackendUtility::versioningPlaceholderClause()
  • BackendUtility::getWorkspaceWhereClause()
  • BackendUtility::wsMapId()
  • BackendUtility::getMovePlaceholder()
  • BackendUtility::getBackendScript()
  • BackendUtility::getWorkspaceWhereClause()

BackendUserAuthentication a.k.a. $GLOBALS['BE_USER'] contains a lot of internal calls and properties which are only used for within TYPO3 Core or to keep state. This should not be exposed in the future anymore, especially when a more flexible permission system might get introduced. The affected properties and methods are:

  • BackendUserAuthentication->includeGroupArray
  • BackendUserAuthentication->errorMsg
  • BackendUserAuthentication->sessionTimeout
  • BackendUserAuthentication->firstMainGroup
  • BackendUserAuthentication->uc_default
  • BackendUserAuthentication->isMemberOfGroup()
  • BackendUserAuthentication->getPagePermsClause()
  • BackendUserAuthentication->isRTE()
  • BackendUserAuthentication->recordEditAccessInternals()
  • BackendUserAuthentication->workspaceCannotEditRecord()
  • BackendUserAuthentication->workspaceAllowLiveRecordsInPID()
  • BackendUserAuthentication->workspaceAllowsLiveEditingInTable()
  • BackendUserAuthentication->workspaceCreateNewRecord()
  • BackendUserAuthentication->workspaceCanCreateNewRecord()
  • BackendUserAuthentication->workspaceAllowAutoCreation()
  • BackendUserAuthentication->workspaceCheckStageForCurrent()
  • BackendUserAuthentication->workspaceInit()
  • BackendUserAuthentication->checkWorkspace()
  • BackendUserAuthentication->checkWorkspaceCurrent()
  • BackendUserAuthentication->setWorkspace()
  • BackendUserAuthentication->setTemporaryWorkspace()
  • BackendUserAuthentication->setDefaultWorkspace()
  • BackendUserAuthentication->getDefaultWorkspace()
  • BackendUserAuthentication->checkLockToIP()
  • Previous
  • Next
Reference to the headline

Copy and freely share the link

This link target has no permanent anchor assigned. You can make a pull request on GitHub to suggest an anchor. The link below can be used, but is prone to change if the page gets moved.

Copy this link into your TYPO3 manual.

  • Home
  • Contact
  • Issues
  • Repository

Last rendered: Jun 12, 2025 16:14

© since 1997 by the TYPO3 contributors
  • Legal Notice
  • Privacy Policy