FormPersistenceManager implements FormPersistenceManagerInterface

Read onlyYes

Concrete implementation of the FormPersistenceManagerInterface

Scope: frontend / backend

Internal
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

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
throws
PersistenceManagerException

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
throws
NoUniqueIdentifierException
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
throws
NoUniquePersistenceIdentifierException
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
bool

hasValidFileExtension()

public hasValidFileExtension(string $fileName) : bool
Parameters
$fileName : string
Return values
bool

isAllowedPersistencePath()

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
bool

listForms()

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
throws
PersistenceManagerException

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
bool

ensureValidPersistenceIdentifier()

protected ensureValidPersistenceIdentifier(string $persistenceIdentifier, array<string|int, mixed> $formSettings) : void
Parameters
$persistenceIdentifier : string
$formSettings : array<string|int, mixed>
Tags
throws
PersistenceManagerException

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
throws
PersistenceManagerException

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
throws
PersistenceManagerException
Return values
File

isAccessibleExtensionFolder()

protected isAccessibleExtensionFolder(string $folderName, array<string|int, mixed> $formSettings) : bool
Parameters
$folderName : string
$formSettings : array<string|int, mixed>
Return values
bool

isAccessibleFormStorageFolder()

protected isAccessibleFormStorageFolder(array<string|int, mixed> $formSettings, string $folderName) : bool
Parameters
$formSettings : array<string|int, mixed>
$folderName : string
Return values
bool

isFileWithinAccessibleExtensionFolders()

protected isFileWithinAccessibleExtensionFolders(string $fileName, array<string|int, mixed> $formSettings) : bool
Parameters
$fileName : string
$formSettings : array<string|int, mixed>
Return values
bool

isFileWithinAccessibleFormStorageFolders()

protected isFileWithinAccessibleFormStorageFolders(array<string|int, mixed> $formSettings, string $fileName) : bool
Parameters
$formSettings : array<string|int, mixed>
$fileName : string
Return values
bool

loadMetaData()

protected loadMetaData(string|File $persistenceIdentifier, array<string|int, mixed> $formSettings) : array<string|int, mixed>
Parameters
$persistenceIdentifier : string|File
$formSettings : array<string|int, mixed>
Tags
throws
NoSuchFileException
Return values
array<string|int, mixed>

looksLikeAFormDefinition()

protected looksLikeAFormDefinition(array<string|int, mixed> $data) : bool
Parameters
$data : array<string|int, mixed>
Return values
bool

pathIsIntendedAsExtensionPath()

protected pathIsIntendedAsExtensionPath(string $path) : bool
Parameters
$path : string
Return values
bool

pathIsIntendedAsFileMountPath()

protected pathIsIntendedAsFileMountPath(string $path) : bool
Parameters
$path : string
Return values
bool

retrieveFileByPersistenceIdentifier()

protected retrieveFileByPersistenceIdentifier(string $persistenceIdentifier, array<string|int, mixed> $formSettings) : File
Parameters
$persistenceIdentifier : string
$formSettings : array<string|int, mixed>
Tags
throws
PersistenceManagerException
throws
NoSuchFileException
Return values
File

retrieveYamlFilesFromExtensionFolders()

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>
Return values
array<string|int, mixed>

        
On this page

Search results