‪TYPO3CMS  9.5
‪Todo List
Member TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::checkExtensionDependency (Dependency $dependency)
handle exceptions / markForUpload
Member TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::fetch_the_id ()
:
Member TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::$contentType
Ticket: #63642 Should be refactored to a request/response model later
Member TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::resolveMixedLinkParameter ($linkText, $mixedLinkParameter, &$configuration=[])
the functionality of the "file:" syntax + the hook should be marked as deprecated, an upgrade wizard should handle existing links
Member TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::addParams ($content, $conf, $isCoreCall=false)
Make it XHTML compatible. Will not present "/>" endings of tags right now. Further getting the tagname might fail if it is not separated by a normal space from the attributes.
Member TYPO3\CMS\Form\Mvc\Property\TypeConverter\FormDefinitionArrayConverter::filterEmptyArrays (array $array)
ArrayUtility?
Member TYPO3\CMS\Form\Domain\Runtime\FormRuntime::initializeFormSessionFromRequest ()
FormRuntime::$formSession is still vulnerable to session fixation unless a real cookie-based process is used
Member TYPO3\CMS\Form\Controller\FormEditorController::transformFormDefinitionForFormEditor (array $formDefinition)
move this to FormDefinitionConversionService
Member TYPO3\CMS\Fluid\ViewHelpers\FormViewHelper::renderHiddenReferrerFields ()
filter out referrer information that is equal to the target (e.g. same packageKey)
Member TYPO3\CMS\Fluid\Core\Widget\WidgetContext::$viewHelperChildNodeRenderingContext
rename to something more meaningful.
Member TYPO3\CMS\Fluid\Core\Widget\AbstractWidgetViewHelper::initializeWidgetIdentifier ()
clean up, and make it somehow more routing compatible.
Member TYPO3\CMS\Extensionmanager\Utility\Parser\XmlParserFactory::$parsers
This would better be moved to a global configuration array like $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']. (might require EM to be moved in a sysext)
Member TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::getExtensionFromTer ($extensionKey, Dependency $dependency)
unit tests
Member TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::checkRootlineForIncludeSection ()

Find a better name, i.e. checkVisibilityByRootLine

Invert boolean return value. Return true if visible.

Member TYPO3\CMS\Extbase\Tests\Unit\Service\ExtensionServiceTest::getTargetPidByPluginSignatureThrowsExceptionIfMoreThanOneTargetPidsWereFound ()
This should rather be a functional test since it needs a connection / querybuilder
Member TYPO3\CMS\Extbase\Tests\Unit\Service\ExtensionServiceTest::getTargetPidByPluginSignatureReturnsNullIfTargetPidCouldNotBeDetermined ()
This should rather be a functional test since it needs a connection / querybuilder
Member TYPO3\CMS\Extbase\Tests\Unit\Service\ExtensionServiceTest::getTargetPidByPluginSignatureDeterminesTheTargetPidIfDefaultPidIsAuto ()
This should rather be a functional test since it needs a connection / querybuilder
Member TYPO3\CMS\Extbase\Validation\ValidatorResolver::createValidator ($validatorType, array $validatorOptions=[])
remove throwing Exceptions in resolveValidatorObjectName
Member TYPO3\CMS\Extbase\Security\Cryptography\HashService::validateAndStripHmac ($string)
Mark as API once it is more stable
Member TYPO3\CMS\Extbase\Security\Cryptography\HashService::appendHmac ($string)
Mark as API once it is more stable
Member TYPO3\CMS\Extbase\Reflection\ObjectAccess::getGettableProperties ($object)
What to do with ArrayAccess
Class TYPO3\CMS\Extbase\Property\TypeConverter\ObjectStorageConverter
Implement functionality for converting collection properties.
Member TYPO3\CMS\Extbase\Persistence\QueryInterface::getQuerySettings ()
decide whether this can be deprecated eventually
Member TYPO3\CMS\Extbase\Persistence\QueryInterface::setQuerySettings (Generic\QuerySettingsInterface $querySettings)
decide whether this can be deprecated somewhen
Member TYPO3\CMS\Extbase\Persistence\Generic\Storage\BackendInterface::getUidOfAlreadyPersistedValueObject (\TYPO3\CMS\Extbase\DomainObject\AbstractValueObject $object)
this is the last monster in this persistence series. refactor!
Member TYPO3\CMS\IndexedSearch\Controller\SearchController::makeDescription ($row, $noMarkup=false, $length=180)
overwork this
Member TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Regular\Modify\ActionTest::changeContentSortingAndCopyDraftPage ()
Analyze PostgreSQL issues further, which is a generic issue
Member TYPO3\CMS\Workspaces\Controller\Remote\ActionHandler::deleteSingleRecord ($table, $uid)
What about reporting errors back to the interface? /olly/
Member TYPO3\CMS\Workspaces\Controller\Remote\ActionHandler::swapSingleRecord ($table, $t3ver_oid, $orig_uid)
What about reporting errors back to the interface? /olly/
Member TYPO3\CMS\T3editor\Controller\CodeCompletionController::getMergedTemplates ($pageId)
olive.nosp@m.r@ty.nosp@m.po3.o.nosp@m.rg: Refactor this method and comment what's going on there
Member TYPO3\CMS\Scheduler\Scheduler::removeTask (Task\AbstractTask $task)
find a way to actually kill the existing jobs
Member TYPO3\CMS\Scheduler\Scheduler::cleanExecutionArrays ()
find a way to actually kill the job
Member TYPO3\CMS\Scheduler\Controller\SchedulerModuleController::stopTask ()
find a way to really kill the running task
Class TYPO3\CMS\Redirects\ViewHelpers\EditRecordViewHelper
remove once general edit ViewHelper exists
Member TYPO3\CMS\Install\Service\CoreUpdateService::setDownloadTargetPath ($downloadTargetPath)
move this to folder structure
Member TYPO3\CMS\Install\Controller\InstallerController::getDefaultDatabaseCharset (string $dbName)
this function is MySQL specific. If the core has migrated to Doctrine it should be reexamined whether this function and the check in $this->checkExistingDatabase could be deleted and utf8 otherwise enforced (guaranteeing compatibility with other database servers).
Member TYPO3\CMS\IndexedSearch\Controller\SearchController::preparePageLink (int $pageUid, array $row, array $urlParameters)
make use of the UriBuilder
Member TYPO3\CMS\Extbase\Persistence\Generic\Query::getSelectorName ()
This has to be checked at another place
Member TYPO3\CMS\IndexedSearch\Controller\SearchController::makeRating ($row)
can this be a ViewHelper?
Class TYPO3\CMS\Frontend\Tests\Unit\Authentication\FrontendUserAuthenticationTest
: Some of these tests would be better suited as functional tests
Member TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\TypoLinkGeneratorTest::setUpFileStorage ()
Provide functionality of creating and indexing fileadmin/ in Testing Framework
Member TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\SlugSiteRequestTest::pageRequestSendsNotFoundResponseWithInvalidCacheHashWithHavingPageErrorHandling (string $uri)
Response body cannot be asserted since PageContentErrorHandler::handlePageError executes request via HTTP (not internally)
Member TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\SlugSiteRequestTest::restrictedPageSendsForbiddenResponseWithUnauthorizedVisitorWithHavingPageErrorHandling (string $uri, int $frontendUserId)
Response body cannot be asserted since PageContentErrorHandler::handlePageError executes request via HTTP (not internally)
Member TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\SiteRequestTest::pageRequestSendsNotFoundResponseWithInvalidCacheHashWithHavingPageErrorHandling (string $uri)
Response body cannot be asserted since PageContentErrorHandler::handlePageError executes request via HTTP (not internally)
Member TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\SiteRequestTest::restrictedPageSendsForbiddenResponseWithUnauthorizedVisitorWithHavingPageErrorHandling (string $uri, int $frontendUserId)
Response body cannot be asserted since PageContentErrorHandler::handlePageError executes request via HTTP (not internally)
Member TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\PlainRequestTest::pageRequestThrowsExceptionWithInvalidCacheHash (string $uri)
In TYPO3 v8 this seemed to be rendered, without throwing that exception
Class TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\MountPointTest

: add Tests for having a PageFolder as mounted page (e.g. id 10000)

Add tests for multilingual setups

: Add tests with various TypoScript settings activated

Member TYPO3\CMS\Frontend\Page\PageRepository::addMountPointParameterToPage (array $page)
Find a better name. The current doesn't hit the point.
Member TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::checkPagerecordForIncludeSection (array $row)
Find a better name, i.e. isVisibleRecord()
Member TYPO3\CMS\Backend\Form\FormDataProvider\TcaInline::getLiveDefaultId ($tableName, $uid)
: the workspace mess still must be resolved somehow
Class TYPO3\CMS\Core\Integrity\DatabaseIntegrityCheck
Need to really extend this class when the DataHandler library has been updated and the whole API is better defined. There are some known bugs in this library. Further it would be nice with a facility to not only analyze but also clean up!
Member TYPO3\CMS\Core\Database\Schema\EventListener\SchemaColumnDefinitionListener::getEnumerationTableColumnDefinition (array $tableColumn, AbstractPlatform $platform)
: The $tableColumn source currently only support MySQL definition style.
Member TYPO3\CMS\Core\Database\Schema\DefaultTcaSchema::getTableFirstPosition (array $tables, string $tableName)

It would be better if the incoming $tables structure would be cleaned

to contain a table only once before this class is entered.

Member TYPO3\CMS\Core\Database\QueryView::csvRowTitles ($row, $conf)
Unused?
Class TYPO3\CMS\Core\Configuration\Richtext
When I grow up, I want to become a data provider
Class TYPO3\CMS\Belog\Domain\Repository\WorkspaceRepository
This should be moved to EXT:workspaces if EXT:belog works no matter if workspaces are installed or not
Class TYPO3\CMS\Belog\Domain\Model\Workspace
: This should be extended and put at some more central place
Class TYPO3\CMS\Belog\Domain\Model\LogEntry
: This should be stuffed to some more central place
Member TYPO3\CMS\Backend\Template\ModuleTemplate::makeShortcutIcon ($gvList, $setList, $modName, $motherModName='', $displayName='', $classes='btn btn-default btn-sm')
Make this thing return a button object
Class TYPO3\CMS\Backend\Form\Utility\FormEngineUtility
: These helpers are target to be dropped if further FormEngine refactoring is done
Member TYPO3\CMS\Backend\Form\InlineStackProcessor::injectAjaxConfiguration (array $config)
: Review this construct - Why can't the ajax call fetch these data on its own and transfers it to client instead?
Member TYPO3\CMS\Backend\Form\FormDataProvider\TcaTypesShowitem::removeFieldsFromPalettes (array $result, $removeListArray)
: unit tests!
Member TYPO3\CMS\Core\Resource\FileReference::getTitle ()
Possibly move this to the image domain object instead
Member TYPO3\CMS\Backend\Form\FormDataProvider\TcaInline::resolveConnectedRecordUids (array $parentConfig, $parentTableName, $parentUid, $parentFieldValue)
: Cover with unit tests
Member TYPO3\CMS\Backend\Form\FormDataProvider\TcaInline::addInlineFirstPid (array $result)
: Find out when and if this is different from 'effectivePid'
Member TYPO3\CMS\Backend\Form\FormDataProvider\SiteTcaInline::addInlineFirstPid (array $result)
: Find out when and if this is different from 'effectivePid'
Class TYPO3\CMS\Backend\Form\FormDataProvider\ParentPageTca
: maybe not needed?
Member TYPO3\CMS\Backend\Form\FormDataProvider\AbstractItemProvider::getRegisteredFlexForms ($table)

: This approach is limited and doesn't find everything. It works for casual tt_content plugins, though:

: The data structure identifier determination depends on data row, but we don't have all rows at hand here.

: The code thus "guesses" some standard data structure identifier scenarios and tries to resolve those.

: This guessing can not be solved in a good way. A general registry of "all" possible data structures is

: probably not wanted, since that wouldn't work for truly dynamic DS calculations. Probably the only

: thing we could do here is a hook to allow extensions declaring specific data structures to

: allow backend admins to set exclude flags for certain fields in those cases.

Member TYPO3\CMS\Backend\Controller\SiteInlineAjaxController::compileChild (array $parentData, string $parentFieldName, int $childUid, array $inlineStructure)

: This clones methods compileChild from TcaInline Provider. Find a better abstraction

: to also encapsulate the more complex scenarios with combination child and friends.

Member TYPO3\CMS\Backend\Controller\FormSlugAjaxController::suggestAction (ServerRequestInterface $request)
)
  • ‪Show a message that the old URL will stop working (possibly add a redirect via checkbox)
  • ‪If the page has subpages, show a warning that the subpages WILL NOT BE MODIFIED and keep the OLD url
Member TYPO3\CMS\Backend\Controller\FormInlineAjaxController::compileChild (array $parentData, $parentFieldName, $childUid, array $inlineStructure)

: This clones methods compileChild from TcaInline Provider. Find a better abstraction

: to also encapsulate the more complex scenarios with combination child and friends.

"

: Will be set protected later, still used by ConditionMatcher

: Will be set protected later, still used by ConditionMatcher

Member TYPO3\CMS\Backend\Backend\Shortcut\ShortcutRepository::getTokenUrl (string $url)
: this needs love
Member TYPO3\CMS\Core\Utility\File\BasicFileUtility::checkIfAllowed ($ext, $_, $filename='')
Deprecate, but still in use by DataHandler
Member TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::convertTransientObjectToArray (\TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject $object)
Refactore this into convertDomainObjectsToIdentityArrays()
Member TYPO3\CMS\Core\Tests\Unit\Utility\GeneralUtilityTest::xml2ArrayFailsWithXmlContentBiggerThanTenMegabytes ()

: The parser run into a memory issue with files bigger 10 MB

: This special tests documents the issue. If fixed, this test

: should become a data set of xml2ArrayHandlesBigXmlFilesDataProvider()

Member TYPO3\CMS\Core\Tests\Unit\Http\UriTest::withPortAcceptsBooleanTrueAsPortOne ()

: Currently, boolean true is interpreted as 1 by canBeInterpretedAsInteger().

: This test shows that, but there is an inconsistency and maybe it would be better

: if the code would not accept 'true' as valid port but throw an exception instead.

: If that is changed, 'true' should be added to the 'invalid type' data provider above.

Member TYPO3\CMS\Core\Tests\Unit\Database\Query\QueryBuilderTest::fromQuotesIdentifierAndDelegatesToConcreteQueryBuilder ()
: Test with alias
Member TYPO3\CMS\Core\Tests\Unit\Database\Query\QueryBuilderTest::updateQuotesIdentifierAndDelegatesToConcreteQueryBuilder ()
: Test with alias
Member TYPO3\CMS\Core\Tests\Unit\Database\Query\QueryBuilderTest::deleteQuotesIdentifierAndDelegatesToConcreteQueryBuilder ()
: Test with alias
Member TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait::applyInstructions (InternalRequest $request, AbstractInstruction ... $instructions)
Instruction handling should be part of Testing Framework (multiple instructions per identifier, merge in interface)
Member TYPO3\CMS\Core\Tests\Acceptance\Backend\FormEngine\ElementsBasicInputRangeCest::simpleRangeAndMd5FieldsDataProvider ()
this one probably broke with the type="number" patch 'label' => 'input_25 eval=int, default=0, range lower=-2, range upper=2', 'inputValue' => 'Kasper TYPO3', 'expectedValue' => '0', 'expectedInternalValue' => '0', 'expectedValueAfterSave' => '0', 'comment' => '', ],
Member TYPO3\CMS\Core\Tests\Acceptance\Backend\FormEngine\ElementsBasicInputEvalCest::simpleEvalInputFieldsDataProvider ()
this one probably broke with the html type="number" patch 'label' => 'input_9 eval=int', 'inputValue' => 'TYPO3', 'expectedValue' => '0', 'expectedInternalValue' => '0', 'expectedValueAfterSave' => '0', 'comment' => '', ],
Member TYPO3\CMS\Core\Utility\File\BasicFileUtility::cleanFileName ($fileName)
Deprecate, but still in use by the core
Member TYPO3\CMS\Core\Utility\File\BasicFileUtility::getUniqueName ($theFile, $theDest, $dontCheckForUnique=false)
Deprecate, but still in use by the Core (DataHandler...)
Member TYPO3\CMS\Adminpanel\Modules\EditModule::initializeModule (ServerRequestInterface $request)
move into fe_edit (including the module)
Member TYPO3\CMS\Core\Utility\ExtensionManagementUtility::$extTablesWasReadFromCacheOnce
See if we can get rid of the 'load multiple times' scenario in fe
Member TYPO3\CMS\Core\TypoScript\TemplateService::getFromMPmap ($pageId=0)
Implement some caching of the result between hits. (more than just the memory caching used here)
Member TYPO3\CMS\Core\TypoScript\TemplateService::mergeConstantsFromPageTSconfig ($constArray)
Apply caching to the parsed Page TSconfig. This is done in the other similar functions for both frontend and backend. However, since this functions works for BOTH frontend and backend we will have to either write our own local caching function or (more likely) detect if we are in FE or BE and use caching functions accordingly. Not having caching affects mostly the backend modules inside the "Template" module since the overhead in the frontend is only seen when TypoScript templates are parsed anyways (after which point they are cached anyways...)
Member TYPO3\CMS\Core\Routing\Route::getArguments ()
'_arguments' are added implicitly, make it explicit in enhancers
Member TYPO3\CMS\Core\Resource\ResourceStorage::getAllFileObjectsInFolder (Folder $folder)
check if this is a duplicate
Class TYPO3\CMS\Core\Resource\ResourceFactory
implement constructor-level caching
Member TYPO3\CMS\Core\Resource\Processing\TaskInterface::fileNeedsProcessing ()
isOutdated()/needsReprocessing()?
Member TYPO3\CMS\Core\Resource\Processing\ImagePreviewTask::fileNeedsProcessing ()
isOutdated()/needsReprocessing()?
Member TYPO3\CMS\Core\Resource\FileReference::getLink ()
Move this to the image domain object instead
Member TYPO3\CMS\Core\Resource\FileReference::getDescription ()
Possibly move this to the image domain object instead
Member TYPO3\CMS\Core\Resource\FileReference::getAlternative ()
Possibly move this to the image domain object instead