‪TYPO3CMS  ‪main
TYPO3\CMS\Core\Configuration\SiteWriter Class Reference

Public Member Functions

 __construct (protected string $configPath, protected EventDispatcherInterface $eventDispatcher, protected PhpFrontend $cache)
 
 createNewBasicSite (string $identifier, int $rootPageId, string $base)
 
 writeSettings (string $siteIdentifier, array $settings)
 
 write (string $siteIdentifier, array $configuration, bool $protectPlaceholders=false)
 
 rename (string $currentIdentifier, string $newIdentifier)
 
 delete (string $siteIdentifier)
 

Protected Member Functions

array< string, protectPlaceholders(array $existingConfiguration, array $modifiedConfiguration):array { try { return GeneralUtility::makeInstance(YamlPlaceholderGuard::class, $existingConfiguration) -> process ($modifiedConfiguration)
 
catch(YamlPlaceholderException $exception) sortConfiguration (array $newConfiguration)
 

Static Protected Member Functions

static findModified (array $currentConfiguration, array $newConfiguration)
 
static findRemoved (array $currentConfiguration, array $newConfiguration)
 

Protected Attributes

string $configFileName = 'config.yaml'
 
string $settingsFileName = 'settings.yaml'
 
string $cacheIdentifier = 'sites-configuration'
 

Detailed Description

Writes Site objects into site configuration files.

Definition at line 38 of file SiteWriter.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Core\Configuration\SiteWriter::__construct ( protected string  $configPath,
protected EventDispatcherInterface  $eventDispatcher,
protected PhpFrontend  $cache 
)

Definition at line 62 of file SiteWriter.php.

Member Function Documentation

◆ createNewBasicSite()

TYPO3\CMS\Core\Configuration\SiteWriter::createNewBasicSite ( string  $identifier,
int  $rootPageId,
string  $base 
)

Creates a site configuration with one language "English" which is the de-facto default language for TYPO3 in general.

Exceptions
SiteConfigurationWriteException

Definition at line 73 of file SiteWriter.php.

References TYPO3\CMS\Core\Configuration\SiteWriter\write().

◆ delete()

TYPO3\CMS\Core\Configuration\SiteWriter::delete ( string  $siteIdentifier)

Removes the config.yaml file of a site configuration. Also clears the cache.

Exceptions
SiteNotFoundException|SiteConfigurationWriteException

Definition at line 168 of file SiteWriter.php.

References TYPO3\CMS\Core\Configuration\SiteWriter\$configFileName, and TYPO3\CMS\Webhooks\Message\$siteIdentifier.

◆ findModified()

static TYPO3\CMS\Core\Configuration\SiteWriter::findModified ( array  $currentConfiguration,
array  $newConfiguration 
)
staticprotected

Definition at line 211 of file SiteWriter.php.

◆ findRemoved()

static TYPO3\CMS\Core\Configuration\SiteWriter::findRemoved ( array  $currentConfiguration,
array  $newConfiguration 
)
staticprotected

Definition at line 231 of file SiteWriter.php.

◆ process()

array<string, protectPlaceholders(array $existingConfiguration, array $modifiedConfiguration): array { try { return GeneralUtility::makeInstance(YamlPlaceholderGuard::class, $existingConfiguration) -> TYPO3\CMS\Core\Configuration\SiteWriter::process (   $modifiedConfiguration)
protected

Detects placeholders that have been introduced and handles* them. (*) currently throws an exception, but could be purged or escaped as well

Parameters
array<string,mixed>‪$existingConfiguration
array<string,mixed>‪$modifiedConfiguration
Returns
‪array<string, mixed> sanitized configuration (currently not used, exception thrown before)
Exceptions
SiteConfigurationWriteException

◆ rename()

TYPO3\CMS\Core\Configuration\SiteWriter::rename ( string  $currentIdentifier,
string  $newIdentifier 
)

Renames a site identifier (and moves the folder)

Exceptions
SiteConfigurationWriteException

Definition at line 153 of file SiteWriter.php.

◆ sortConfiguration()

catch (YamlPlaceholderException $exception) TYPO3\CMS\Core\Configuration\SiteWriter::sortConfiguration ( array  $newConfiguration)
protected

Definition at line 200 of file SiteWriter.php.

Referenced by TYPO3\CMS\Core\Configuration\SiteWriter\write().

◆ write()

TYPO3\CMS\Core\Configuration\SiteWriter::write ( string  $siteIdentifier,
array  $configuration,
bool  $protectPlaceholders = false 
)

Add or update a site configuration

Parameters
bool$protectPlaceholders‪whether to disallow introducing new placeholders
Todo:
‪enforce $protectPlaceholders with TYPO3 v13.0
Exceptions
SiteConfigurationWriteException

Definition at line 111 of file SiteWriter.php.

References TYPO3\CMS\Core\Configuration\SiteWriter\$configFileName, TYPO3\CMS\Webhooks\Message\$siteIdentifier, TYPO3\CMS\Core\Utility\GeneralUtility\mkdir_deep(), TYPO3\CMS\Core\Configuration\SiteWriter\sortConfiguration(), and TYPO3\CMS\Core\Utility\GeneralUtility\writeFile().

Referenced by TYPO3\CMS\Core\Configuration\SiteWriter\createNewBasicSite().

◆ writeSettings()

TYPO3\CMS\Core\Configuration\SiteWriter::writeSettings ( string  $siteIdentifier,
array  $settings 
)

Member Data Documentation

◆ $cacheIdentifier

string TYPO3\CMS\Core\Configuration\SiteWriter::$cacheIdentifier = 'sites-configuration'
protected

Identifier to store all configuration data in the core cache.

Definition at line 60 of file SiteWriter.php.

◆ $configFileName

string TYPO3\CMS\Core\Configuration\SiteWriter::$configFileName = 'config.yaml'
protected

Config yaml file name.

Definition at line 45 of file SiteWriter.php.

Referenced by TYPO3\CMS\Core\Configuration\SiteWriter\delete(), and TYPO3\CMS\Core\Configuration\SiteWriter\write().

◆ $settingsFileName

string TYPO3\CMS\Core\Configuration\SiteWriter::$settingsFileName = 'settings.yaml'
protected

YAML file name with all settings.

Todo:
‪remove, move usages to SiteSettingsFactory

Definition at line 53 of file SiteWriter.php.

Referenced by TYPO3\CMS\Core\Configuration\SiteWriter\writeSettings().