* Specifies installation tasks for MySQL and equivalent databases.
*/
classTasksextendsInstallTasks{
/**
* Minimum required MySQLnd version.
*/
constMYSQLND_MINIMUM_VERSION='5.0.9';
/**
* Minimum required libmysqlclient version.
*/
constLIBMYSQLCLIENT_MINIMUM_VERSION='5.5.3';
/**
* The PDO driver name for MySQL and equivalent databases.
*
@@ -27,13 +38,6 @@ class Tasks extends InstallTasks {
* Constructs a \Drupal\Core\Database\Driver\mysql\Install\Tasks object.
*/
publicfunction__construct(){
$this->tasks[]=array(
'arguments'=>array(
'SET NAMES utf8mb4',
'The %name database server supports utf8mb4 character encoding.',
'The %name database server must support utf8mb4 character encoding to work with Drupal. Make sure to use a database server that supports utf8mb4 character encoding, such as MySQL/MariaDB/Percona versions 5.5.3 and up.',
$this->fail(t('Your MySQL server and PHP MySQL driver must support utf8mb4 character encoding. Make sure to use a database system that supports this (such as MySQL/MariaDB/Percona 5.5.3 and up), and that the utf8mb4 character set is compiled in. See the <a href="@documentation" target="_blank">MySQL documentation</a> for more information.',array('@documentation'=>'https://dev.mysql.com/doc/refman/5.0/en/cannot-initialize-character-set.html')));
$info=Database::getConnectionInfo();
$info_copy=$info;
// Set a flag to fall back to utf8. Note: this flag should only be
// used here and is for internal use only.
$info_copy['default']['_dsn_utf8_fallback']=TRUE;
// In order to change the Database::$databaseInfo array, we need to
// remove the active connection, then re-add it with the new info.
$this->fail(t("The MySQLnd driver version %version is less than the minimum required version. Upgrade to MySQLnd version %mysqlnd_minimum_version or up, or alternatively switch mysql drivers to libmysqlclient version %libmysqlclient_minimum_version or up.",array('%version'=>Database::getConnection()->version(),'%mysqlnd_minimum_version'=>self::MYSQLND_MINIMUM_VERSION,'%libmysqlclient_minimum_version'=>self::LIBMYSQLCLIENT_MINIMUM_VERSION)));
}
}
else{
// The libmysqlclient driver supports utf8mb4 starting at version 5.5.3.
$this->fail(t("The libmysqlclient driver version %version is less than the minimum required version. Upgrade to libmysqlclient version %libmysqlclient_minimum_version or up, or alternatively switch mysql drivers to MySQLnd version %mysqlnd_minimum_version or up.",array('%version'=>Database::getConnection()->version(),'%libmysqlclient_minimum_version'=>self::LIBMYSQLCLIENT_MINIMUM_VERSION,'%mysqlnd_minimum_version'=>self::MYSQLND_MINIMUM_VERSION)));
$this->fail(t("The database version %version is less than the minimum required version %minimum_version.",array('%version'=>Database::getConnection()->version(),'%minimum_version'=>$this->minimumVersion())));
$this->fail(t("The database server version %version is less than the minimum required version %minimum_version.",array('%version'=>Database::getConnection()->version(),'%minimum_version'=>$this->minimumVersion())));