Task #64589

Cleanup ResourceFactory

Added by Philipp Gampe about 6 years ago. Updated over 2 years ago.

Should have
File Abstraction Layer (FAL)
Target version:
Start date:
Due date:
% Done:


Estimated time:
TYPO3 Version:
PHP Version:
Sprint Focus:
Remote Sprint


This is a list of problems I spotted while reviewing the ResourceFactory. Some issue might need own tickets, but some might just be easy cleanups.

Requires some thinking about the API.


general: clear local cache method (e.g. to save memory on bulk operations)
general: why are create object methods public?
78: creates a driver -> gets a driver
88: do not recreate instance of singleton
89: getDriverClass? what for?
105: getDefaultStorage should be a first class citizen of StorageRepository, Cache the result [O(n) instead of O(1)]
128: why $fileIdentifier handling in this function instead of a dedicated function? Used only 1 or 2 times in core, same for $recordData, at least cached, but that part is hard to miss in between all the unrelated code
167: createStorageObject inside a getter? -> move to own method, also gets rid of $recordData here
186: pointing to PATH_site/fileadmin? or fileadminDir
274: use API for delete clause
307: $storageConfiguration --> $storageConfiguration !== NULL
329: missing PhpDoc
372: (sting)$identifier !== ''
400: wtf has this to do with processed files? -> variant should not be findable in the repository
405: create inside a getter? really needed here?
446: strpos($input, ':') > 0 ??? === 1 instead?
450: after having extracted the storage uid already, why not using getFileObjectFromStorageAndIdentifier
451: move elseif up one level
467: use getFileObjectByStorageAndIdentifier() with storage 0 instead
470: same here
481: method should be moved near getFileObjectFromCombinedIdentifier()
509: same here
523: why does this method does not handle legacy paths?
543: remove $storage parameter, require to have $fileData['storage'] set instead, change exception accordingly
613: use API for delete clause


Updated by Anja Leichsenring over 5 years ago

  • Sprint Focus changed from On Location Sprint to Remote Sprint

Updated by Georg Ringer over 2 years ago

  • Status changed from New to Closed

I am closing this issue as nothing happened the last 4 years while the code for sure has changed a lot. Feel free to reopen or create new one if you want to pick up the work

Also available in: Atom PDF