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()