‪TYPO3CMS  ‪main
TYPO3\CMS\Install\Service\SetupDatabaseService Class Reference

Public Member Functions

 __construct (private readonly LateBootService $lateBootService, private readonly ConfigurationManager $configurationManager, private readonly PermissionsCheck $databasePermissionsCheck, private readonly Registry $registry, private readonly SchemaMigrator $schemaMigrator,)
 
array setDefaultConnectionSettings (array $values)
 
array getDatabaseConfigurationFromEnvironment ()
 
 isValidDbHost (string $name)
 
 isValidDbPort (int $number)
 
 isValidDbName (string $name)
 
 getBackendUserPasswordValidationErrors (string $password)
 
array getDatabaseList ()
 
 checkDatabaseSelect ()
 
 createDatabase (string $name)
 
 isDatabaseConnectSuccessful ()
 
bool isDatabaseConfigurationComplete ()
 
 getDatabaseConfiguredMysqliSocket ()
 
 getDatabaseConfiguredPdoMysqlSocket ()
 
 createNewDatabase (string $dbName)
 
 checkExistingDatabase (string $dbName)
 
FlashMessage[] importDatabaseData ()
 
 checkRequiredDatabasePermissions ()
 
 checkDatabaseRequirementsForDriver (string $databaseDriverName)
 
 getDriverOptions ()
 
 markWizardsDone (ContainerInterface $container)
 

Protected Attributes

array $validDrivers
 

Private Member Functions

 getDefaultSocketFor (string $phpIniSetting)
 

Detailed Description

Service class helping to manage database related settings and operations required to set up TYPO3

This class is only meant to be used within EXT:install and is not part of the TYPO3 Core API.

@phpstan-import-type Params from DriverManager

Definition at line 51 of file SetupDatabaseService.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Install\Service\SetupDatabaseService::__construct ( private readonly LateBootService  $lateBootService,
private readonly ConfigurationManager  $configurationManager,
private readonly PermissionsCheck  $databasePermissionsCheck,
private readonly Registry  $registry,
private readonly SchemaMigrator  $schemaMigrator 
)

Definition at line 60 of file SetupDatabaseService.php.

Member Function Documentation

◆ checkDatabaseRequirementsForDriver()

TYPO3\CMS\Install\Service\SetupDatabaseService::checkDatabaseRequirementsForDriver ( string  $databaseDriverName)

◆ checkDatabaseSelect()

TYPO3\CMS\Install\Service\SetupDatabaseService::checkDatabaseSelect ( )

◆ checkExistingDatabase()

TYPO3\CMS\Install\Service\SetupDatabaseService::checkExistingDatabase ( string  $dbName)

Checks whether an existing database on the default connection can be used for a TYPO3 installation. The database name is only persisted to the local configuration if the database is empty.

Parameters
string$dbName‪name of the database

Definition at line 471 of file SetupDatabaseService.php.

References $GLOBALS, and TYPO3\CMS\Core\Database\ConnectionPool\DEFAULT_CONNECTION_NAME.

◆ checkRequiredDatabasePermissions()

TYPO3\CMS\Install\Service\SetupDatabaseService::checkRequiredDatabasePermissions ( )

Definition at line 545 of file SetupDatabaseService.php.

◆ createDatabase()

TYPO3\CMS\Install\Service\SetupDatabaseService::createDatabase ( string  $name)

◆ createNewDatabase()

TYPO3\CMS\Install\Service\SetupDatabaseService::createNewDatabase ( string  $dbName)

Creates a new database on the default connection

Parameters
string$dbName‪name of database

Definition at line 444 of file SetupDatabaseService.php.

References TYPO3\CMS\Install\Service\SetupDatabaseService\createDatabase().

◆ getBackendUserPasswordValidationErrors()

TYPO3\CMS\Install\Service\SetupDatabaseService::getBackendUserPasswordValidationErrors ( string  $password)

◆ getDatabaseConfigurationFromEnvironment()

array TYPO3\CMS\Install\Service\SetupDatabaseService::getDatabaseConfigurationFromEnvironment ( )

Try to fetch db credentials from a .env file and see if connect works

Returns
‪array Empty array if no file is found or connect is not successful, else working credentials

Definition at line 213 of file SetupDatabaseService.php.

Referenced by TYPO3\CMS\Install\Service\SetupDatabaseService\getDriverOptions(), and TYPO3\CMS\Install\Service\SetupDatabaseService\setDefaultConnectionSettings().

◆ getDatabaseConfiguredMysqliSocket()

TYPO3\CMS\Install\Service\SetupDatabaseService::getDatabaseConfiguredMysqliSocket ( )

◆ getDatabaseConfiguredPdoMysqlSocket()

TYPO3\CMS\Install\Service\SetupDatabaseService::getDatabaseConfiguredPdoMysqlSocket ( )

◆ getDatabaseList()

array TYPO3\CMS\Install\Service\SetupDatabaseService::getDatabaseList ( )

Returns list of available databases (with access-check based on username/password)

Returns
‪array List of available databases
Exceptions
DBALException

Definition at line 275 of file SetupDatabaseService.php.

References $GLOBALS, and TYPO3\CMS\Core\Database\ConnectionPool\DEFAULT_CONNECTION_NAME.

◆ getDefaultSocketFor()

TYPO3\CMS\Install\Service\SetupDatabaseService::getDefaultSocketFor ( string  $phpIniSetting)
private

◆ getDriverOptions()

◆ importDatabaseData()

FlashMessage [] TYPO3\CMS\Install\Service\SetupDatabaseService::importDatabaseData ( )

Create tables and import static rows

Returns
‪FlashMessage[]

Definition at line 512 of file SetupDatabaseService.php.

◆ isDatabaseConfigurationComplete()

bool TYPO3\CMS\Install\Service\SetupDatabaseService::isDatabaseConfigurationComplete ( )

Check system/settings.php for required database settings:

  • ‪'username' and 'password' are mandatory, but may be empty
  • ‪if 'driver' is pdo_sqlite and 'path' is set, its ok, too
Returns
‪bool TRUE if required settings are present

Definition at line 389 of file SetupDatabaseService.php.

References $GLOBALS, and TYPO3\CMS\Core\Database\ConnectionPool\DEFAULT_CONNECTION_NAME.

◆ isDatabaseConnectSuccessful()

TYPO3\CMS\Install\Service\SetupDatabaseService::isDatabaseConnectSuccessful ( )

Test connection with given credentials and return exception message if exception thrown

Definition at line 368 of file SetupDatabaseService.php.

References TYPO3\CMS\Core\Database\ConnectionPool\DEFAULT_CONNECTION_NAME.

◆ isValidDbHost()

TYPO3\CMS\Install\Service\SetupDatabaseService::isValidDbHost ( string  $name)

◆ isValidDbName()

TYPO3\CMS\Install\Service\SetupDatabaseService::isValidDbName ( string  $name)

◆ isValidDbPort()

TYPO3\CMS\Install\Service\SetupDatabaseService::isValidDbPort ( int  $number)

◆ markWizardsDone()

TYPO3\CMS\Install\Service\SetupDatabaseService::markWizardsDone ( ContainerInterface  $container)

Definition at line 699 of file SetupDatabaseService.php.

◆ setDefaultConnectionSettings()

Member Data Documentation

◆ $validDrivers

array TYPO3\CMS\Install\Service\SetupDatabaseService::$validDrivers
protected
Initial value:
= [
'mysqli',
'pdo_mysql',
'pdo_pgsql',
'pdo_sqlite',
]

Definition at line 53 of file SetupDatabaseService.php.