FormPersistenceManager implements FormPersistenceManagerInterface
Concrete implementation of the FormPersistenceManagerInterface
Scope: frontend / backend
Attributes
- #[AsAlias]
- \TYPO3\CMS\Form\Mvc\Persistence\FormPersistenceManagerInterface::class
- $public: true
Table of Contents
Interfaces
- FormPersistenceManagerInterface
- The form persistence manager interface
Properties
- $eventDispatcher : EventDispatcherInterface
- $filePersistenceSlot : FilePersistenceSlot
- $resourceFactory : ResourceFactory
- $runtimeCache : FrontendInterface
- $storageRepository : StorageRepository
- $typoScriptService : TypoScriptService
- $yamlSource : YamlSource
Methods
- __construct() : mixed
- delete() : void
- Delete the form representation identified by $persistenceIdentifier.
- getAccessibleExtensionFolders() : array<string|int, mixed>
- Return a list of all accessible extension folders
- getAccessibleFormStorageFolders() : array<string|int, Folder>
- Return a list of all accessible file mountpoints for the current backend user.
- getUniqueIdentifier() : string
- This takes a form identifier and returns a unique identifier for it.
- getUniquePersistenceIdentifier() : string
- This takes a form identifier and returns a unique persistence identifier for it.
- hasForms() : bool
- Check if any form definition is available
- hasValidFileExtension() : bool
- isAllowedPersistencePath() : bool
- Check if a persistence path or if a persistence identifier path is configured within the form setup "persistenceManager.allowedExtensionPaths" or persistenceManager.allowedFileMounts".
- listForms() : array<string|int, mixed>
- List all form definitions which can be loaded through this form persistence manager.
- load() : array<string|int, mixed>
- Load the array formDefinition identified by $persistenceIdentifier, let event listeners modify it, override it by TypoScript settings, and return it. Only files with the extension .yaml or .form.yaml are loaded.
- save() : void
- Save the array form representation identified by $persistenceIdentifier.
- checkForDuplicateIdentifier() : bool
- Check if an identifier is already used by a formDefinition.
- ensureValidPersistenceIdentifier() : void
- exists() : bool
- Check whether a form with the specified $persistenceIdentifier exists.
- extractMetaDataFromCouldBeFormDefinition() : array<string|int, mixed>
- generateErrorsIfFormDefinitionIsValidButHasInvalidFileExtension() : void
- getOrCreateFile() : File
- Returns a File object for a given $persistenceIdentifier.
- getStorageByUid() : ResourceStorage
- Returns a ResourceStorage for a given uid
- isAccessibleExtensionFolder() : bool
- isAccessibleFormStorageFolder() : bool
- isFileWithinAccessibleExtensionFolders() : bool
- isFileWithinAccessibleFormStorageFolders() : bool
- loadMetaData() : array<string|int, mixed>
- looksLikeAFormDefinition() : bool
- pathIsIntendedAsExtensionPath() : bool
- pathIsIntendedAsFileMountPath() : bool
- retrieveFileByPersistenceIdentifier() : File
- retrieveYamlFilesFromExtensionFolders() : array<string|int, string>
- Retrieves yaml files from extension folders for further processing.
- retrieveYamlFilesFromStorageFolders() : array<string|int, File>
- Retrieves yaml files from storage folders for further processing.
- sortForms() : array<string|int, mixed>
Properties
$eventDispatcher
protected
EventDispatcherInterface
$eventDispatcher
$filePersistenceSlot
protected
FilePersistenceSlot
$filePersistenceSlot
$resourceFactory
protected
ResourceFactory
$resourceFactory
$runtimeCache
protected
FrontendInterface
$runtimeCache
Attributes
- #[Autowire]
- $service: 'cache.runtime'
$storageRepository
protected
StorageRepository
$storageRepository
$typoScriptService
protected
TypoScriptService
$typoScriptService
$yamlSource
protected
YamlSource
$yamlSource
Methods
__construct()
public
__construct(YamlSource $yamlSource, StorageRepository $storageRepository, FilePersistenceSlot $filePersistenceSlot, ResourceFactory $resourceFactory, FrontendInterface $runtimeCache, EventDispatcherInterface $eventDispatcher, TypoScriptService $typoScriptService) : mixed
Parameters
- $yamlSource : YamlSource
- $storageRepository : StorageRepository
- $filePersistenceSlot : FilePersistenceSlot
- $resourceFactory : ResourceFactory
- $runtimeCache : FrontendInterface
- $eventDispatcher : EventDispatcherInterface
- $typoScriptService : TypoScriptService
delete()
Delete the form representation identified by $persistenceIdentifier.
public
delete(string $persistenceIdentifier, array<string|int, mixed> $formSettings) : void
Only files with the extension .form.yaml are removed.
Parameters
- $persistenceIdentifier : string
- $formSettings : array<string|int, mixed>
Tags
getAccessibleExtensionFolders()
Return a list of all accessible extension folders
public
getAccessibleExtensionFolders(array<string|int, mixed> $formSettings) : array<string|int, mixed>
Only registered mount points from persistenceManager.allowedExtensionPaths are listed.
Parameters
- $formSettings : array<string|int, mixed>
Return values
array<string|int, mixed>getAccessibleFormStorageFolders()
Return a list of all accessible file mountpoints for the current backend user.
public
getAccessibleFormStorageFolders(array<string|int, mixed> $formSettings) : array<string|int, Folder>
Only registered mount points from persistenceManager.allowedFileMounts are listed.
Parameters
- $formSettings : array<string|int, mixed>
Return values
array<string|int, Folder>getUniqueIdentifier()
This takes a form identifier and returns a unique identifier for it.
public
getUniqueIdentifier(array<string|int, mixed> $formSettings, string $identifier) : string
If a formDefinition with the same identifier already exists a suffix is appended until the identifier is unique.
Parameters
- $formSettings : array<string|int, mixed>
- $identifier : string
Tags
Return values
string —unique form identifier
getUniquePersistenceIdentifier()
This takes a form identifier and returns a unique persistence identifier for it.
public
getUniquePersistenceIdentifier(string $formIdentifier, string $savePath, array<string|int, mixed> $formSettings) : string
By default, this is just similar to the identifier. But if a form with the same persistence identifier already exists a suffix is appended until the persistence identifier is unique.
Parameters
- $formIdentifier : string
-
lowerCamelCased form identifier
- $savePath : string
- $formSettings : array<string|int, mixed>
Tags
Return values
string —unique form persistence identifier
hasForms()
Check if any form definition is available
public
hasForms(array<string|int, mixed> $formSettings) : bool
Parameters
- $formSettings : array<string|int, mixed>
Return values
boolhasValidFileExtension()
public
hasValidFileExtension(string $fileName) : bool
Parameters
- $fileName : string
Return values
boolisAllowedPersistencePath()
Check if a persistence path or if a persistence identifier path is configured within the form setup "persistenceManager.allowedExtensionPaths" or persistenceManager.allowedFileMounts".
public
isAllowedPersistencePath(string $persistencePath, array<string|int, mixed> $formSettings) : bool
If the input is a persistence identifier an additional check for a valid file extension is performed.
Parameters
- $persistencePath : string
- $formSettings : array<string|int, mixed>
Return values
boollistForms()
List all form definitions which can be loaded through this form persistence manager.
public
listForms(array<string|int, mixed> $formSettings) : array<string|int, mixed>
Returns an associative array with each item containing the keys 'name' (the human-readable name of the form) and 'persistenceIdentifier' (the unique identifier for the Form Persistence Manager e.g. the path to the saved form definition).
Parameters
- $formSettings : array<string|int, mixed>
Return values
array<string|int, mixed> —in the format [['name' => 'Form 01', 'persistenceIdentifier' => 'path1'], [ .... ]]
load()
Load the array formDefinition identified by $persistenceIdentifier, let event listeners modify it, override it by TypoScript settings, and return it. Only files with the extension .yaml or .form.yaml are loaded.
public
load(string $persistenceIdentifier, array<string|int, mixed> $formSettings, array<string|int, mixed> $typoScriptSettings) : array<string|int, mixed>
Parameters
- $persistenceIdentifier : string
- $formSettings : array<string|int, mixed>
- $typoScriptSettings : array<string|int, mixed>
-
FE TS "plugin.tx_form.settings" - Given when rendering a form as plugin using FormFrontendController or formvh:render, empty array in all BE usages. Intended to override details like labels of single forms.
Return values
array<string|int, mixed>save()
Save the array form representation identified by $persistenceIdentifier.
public
save(string $persistenceIdentifier, array<string|int, mixed> $formDefinition, array<string|int, mixed> $formSettings) : void
Only files with the extension .form.yaml are saved. If the formDefinition is located within an EXT: resource, save is only allowed if the configuration path persistenceManager.allowSaveToExtensionPaths is set to true.
Parameters
- $persistenceIdentifier : string
- $formDefinition : array<string|int, mixed>
- $formSettings : array<string|int, mixed>
Tags
checkForDuplicateIdentifier()
Check if an identifier is already used by a formDefinition.
protected
checkForDuplicateIdentifier(array<string|int, mixed> $formSettings, string $identifier) : bool
Parameters
- $formSettings : array<string|int, mixed>
- $identifier : string
Return values
boolensureValidPersistenceIdentifier()
protected
ensureValidPersistenceIdentifier(string $persistenceIdentifier, array<string|int, mixed> $formSettings) : void
Parameters
- $persistenceIdentifier : string
- $formSettings : array<string|int, mixed>
Tags
exists()
Check whether a form with the specified $persistenceIdentifier exists.
protected
exists(string $persistenceIdentifier, array<string|int, mixed> $formSettings) : bool
Parameters
- $persistenceIdentifier : string
- $formSettings : array<string|int, mixed>
Return values
bool —TRUE if a form with the given $persistenceIdentifier can be loaded
extractMetaDataFromCouldBeFormDefinition()
protected
extractMetaDataFromCouldBeFormDefinition(string $maybeRawFormDefinition) : array<string|int, mixed>
Parameters
- $maybeRawFormDefinition : string
Return values
array<string|int, mixed>generateErrorsIfFormDefinitionIsValidButHasInvalidFileExtension()
protected
generateErrorsIfFormDefinitionIsValidButHasInvalidFileExtension(array<string|int, mixed> $formDefinition, string $persistenceIdentifier) : void
Parameters
- $formDefinition : array<string|int, mixed>
- $persistenceIdentifier : string
Tags
getOrCreateFile()
Returns a File object for a given $persistenceIdentifier.
protected
getOrCreateFile(string $persistenceIdentifier) : File
If no file for this identifier exists a new object will be created.
Parameters
- $persistenceIdentifier : string
Tags
Return values
FilegetStorageByUid()
Returns a ResourceStorage for a given uid
protected
getStorageByUid(int $storageUid) : ResourceStorage
Parameters
- $storageUid : int
Tags
Return values
ResourceStorageisAccessibleExtensionFolder()
protected
isAccessibleExtensionFolder(string $folderName, array<string|int, mixed> $formSettings) : bool
Parameters
- $folderName : string
- $formSettings : array<string|int, mixed>
Return values
boolisAccessibleFormStorageFolder()
protected
isAccessibleFormStorageFolder(array<string|int, mixed> $formSettings, string $folderName) : bool
Parameters
- $formSettings : array<string|int, mixed>
- $folderName : string
Return values
boolisFileWithinAccessibleExtensionFolders()
protected
isFileWithinAccessibleExtensionFolders(string $fileName, array<string|int, mixed> $formSettings) : bool
Parameters
- $fileName : string
- $formSettings : array<string|int, mixed>
Return values
boolisFileWithinAccessibleFormStorageFolders()
protected
isFileWithinAccessibleFormStorageFolders(array<string|int, mixed> $formSettings, string $fileName) : bool
Parameters
- $formSettings : array<string|int, mixed>
- $fileName : string
Return values
boolloadMetaData()
protected
loadMetaData(string|File $persistenceIdentifier, array<string|int, mixed> $formSettings) : array<string|int, mixed>
Parameters
- $persistenceIdentifier : string|File
- $formSettings : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>looksLikeAFormDefinition()
protected
looksLikeAFormDefinition(array<string|int, mixed> $data) : bool
Parameters
- $data : array<string|int, mixed>
Return values
boolpathIsIntendedAsExtensionPath()
protected
pathIsIntendedAsExtensionPath(string $path) : bool
Parameters
- $path : string
Return values
boolpathIsIntendedAsFileMountPath()
protected
pathIsIntendedAsFileMountPath(string $path) : bool
Parameters
- $path : string
Return values
boolretrieveFileByPersistenceIdentifier()
protected
retrieveFileByPersistenceIdentifier(string $persistenceIdentifier, array<string|int, mixed> $formSettings) : File
Parameters
- $persistenceIdentifier : string
- $formSettings : array<string|int, mixed>
Tags
Return values
FileretrieveYamlFilesFromExtensionFolders()
Retrieves yaml files from extension folders for further processing.
protected
retrieveYamlFilesFromExtensionFolders(array<string|int, mixed> $formSettings) : array<string|int, string>
At this time it's not determined yet, whether these files contain form data.
Parameters
- $formSettings : array<string|int, mixed>
Return values
array<string|int, string>retrieveYamlFilesFromStorageFolders()
Retrieves yaml files from storage folders for further processing.
protected
retrieveYamlFilesFromStorageFolders(array<string|int, mixed> $formSettings) : array<string|int, File>
At this time it's not determined yet, whether these files contain form data.
Parameters
- $formSettings : array<string|int, mixed>
Return values
array<string|int, File>sortForms()
protected
sortForms(array<string|int, mixed> $forms, array<string|int, mixed> $formSettings) : array<string|int, mixed>
Parameters
- $forms : array<string|int, mixed>
- $formSettings : array<string|int, mixed>