Spaces:
No application file
No application file
namespace Mautic\CoreBundle\DependencyInjection\Compiler; | |
use Mautic\CoreBundle\Exception\MessageOnlyErrorHandlerException; | |
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; | |
use Symfony\Component\DependencyInjection\ContainerBuilder; | |
class RequirementsPass implements CompilerPassInterface | |
{ | |
public function process(ContainerBuilder $container): void | |
{ | |
if (defined('MAUTIC_INSTALLER')) { | |
// The installer itself does the PDO check, so no need to validate here during installation. | |
return; | |
} | |
if (!class_exists('PDO') || !in_array('mysql', \PDO::getAvailableDrivers(), true)) { | |
// We need to check this on boot, as later in the process is too late to show a message that makes the issue clear. | |
throw new MessageOnlyErrorHandlerException('Mautic requires the PHP pdo_mysql extension to work. Please ensure this extension is installed and enabled'); | |
} | |
} | |
} | |