![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/InstallBundle/Configurator/Step/ |
<?php namespace Mautic\InstallBundle\Configurator\Step; use Mautic\CoreBundle\Configurator\Configurator; use Mautic\CoreBundle\Configurator\Step\StepInterface; use Mautic\InstallBundle\Configurator\Form\DoctrineStepType; /** * @author Fabien Potencier <[email protected]> */ class DoctrineStep implements StepInterface { /** * Database driver. */ public $driver = 'pdo_mysql'; /** * Database host. */ public $host = 'localhost'; /** * Database host. Read Only Replica. */ public ?string $host_ro = null; /** * Database table prefix. * Required in step. * * @var string */ public $table_prefix; /** * Database connection port. */ public $port = 3306; /** * Database name. */ public $name; /** * Database user. */ public $user; /** * Database user's password. * * @var string */ public $password; /** * Backup tables if they exist; otherwise drop them. * Required in step. * * @var bool */ public $backup_tables = true; /** * Prefix for backup tables. * Required in step. * * @var string */ public $backup_prefix = 'bak_'; public ?string $server_version; public function __construct(Configurator $configurator) { $parameters = $configurator->getParameters(); foreach ($parameters as $key => $value) { if (str_starts_with($key, 'db_')) { $parameters[substr($key, 3)] = $value; $key = substr($key, 3); $this->$key = $value; } } } public function getFormType(): string { return DoctrineStepType::class; } public function checkRequirements(): array { $messages = []; if (!class_exists('\PDO')) { $messages[] = 'mautic.install.pdo.mandatory'; } else { if (!in_array('mysql', \PDO::getAvailableDrivers(), true)) { $messages[] = 'mautic.install.pdo.drivers'; } } return $messages; } public function checkOptionalSettings(): array { return []; } /** * @return mixed[] */ public function update(StepInterface $data): array { $parameters = []; foreach ($data as $key => $value) { $parameters['db_'.$key] = $value; } return $parameters; } public function getTemplate(): string { return '@MauticInstall/Install/doctrine.html.twig'; } /** * Return the key values of the available driver array. * Required in step. * * @see \Mautic\InstallBundle\Configurator\Form\DoctrineStepType::buildForm() */ public static function getDriverKeys(): array { return array_keys(static::getDrivers()); } /** * Fetches the available database drivers for the environment. */ public static function getDrivers(): array { $mauticSupported = [ 'pdo_mysql' => 'MySQL PDO (Recommended)', ]; $supported = []; // Add PDO drivers if supported if (class_exists('\PDO')) { $pdoDrivers = \PDO::getAvailableDrivers(); foreach ($pdoDrivers as $driver) { if (array_key_exists('pdo_'.$driver, $mauticSupported)) { $supported['pdo_'.$driver] = $mauticSupported['pdo_'.$driver]; } } } return $supported; } }