diff --git a/HowtoAegir.md b/HowtoAegir.md index d5cf7ce3..68ff163a 100644 --- a/HowtoAegir.md +++ b/HowtoAegir.md @@ -255,43 +255,70 @@ use Drupal\Core\Database\Database; class Sql10 extends Sql9 { } ~~~ -À voir les autres fichiers similaires : DrupalBoot10.php, StatusInfoDrupal10.php, User10.php et UserSingle10.php -Il faut aussi patcher dans le code de Drupal 10 et supprimer "string|\Stringable " : +Sinon on aura des erreurs lors de l'installation d'un Drupal 10 : + +~~~ +Drush\Sql\SqlException: Unable to find a matching SQL Class. Drush cannot find your database connection details... +~~~ + +ET idem pour DrupalBoot10.php, StatusInfoDrupal10.php, User10.php et UserSingle10.php +(TODO: fichiers à fournir). + +Il faut aussi patcher dans le code de Drupal 10 : + +1. supprimer "string|\Stringable " dans les fichiers suivants : * 18 fois dans vendor/psr/log/src/LoggerTrait.php : * 1 fois dans core/lib/Drupal/Core/Logger/LoggerChannel.php * 9 fois dans core/lib/Drupal/Core/Logger/RfcLoggerTrait.php * 1 fois dans core/modules/dblog/src/Logger/DbLog.php -core/lib/Drupal/Core/Logger/RfcLoggerTrait.php : +2. supprimer ": void" dans les fichiers suivants : + +* core/lib/Drupal/Core/Logger/RfcLoggerTrait.php +* vendor/psr/log/src/LoggerInterface.php +* core/modules/dblog/src/Logger/DbLog.php + +3. Supprimer ": void" uniquement dans "function log(...)" dans les fichiers suivants : + +* vendor/psr/log/src/LoggerTrait.php +* core/lib/Drupal/Core/Logger/LoggerChannel.php + +Enfin, il faut appliquer le patch suivant sur le fichier +`/var/aegir/.config/composer/vendor/drush/drush/lib/Drush/Boot/DrupalBoot.php` : ~~~ -76c76 -< abstract public function log($level, string|\Stringable $message, array $context = []): void; ---- -> abstract public function log($level, $message, $context); +@@ -157,7 +157,12 @@ + $ignored_modules[] = $cached->data; + } + foreach (array_diff(drush_module_list(), $ignored_modules) as $module) { +- $filepath = drupal_get_path('module', $module); ++ if (drush_drupal_major_version() <= 9) { ++ $filepath = drupal_get_path('module', $module); ++ } ++ else { ++ $filepath = \Drupal::service('extension.list.module')->getPath($module); ++ } + if ($filepath && $filepath != '/') { + $searchpath[] = $filepath; + } +@@ -165,7 +170,12 @@ + + // Check all enabled themes including non-default and non-admin. + foreach (drush_theme_list() as $key => $value) { +- $searchpath[] = drupal_get_path('theme', $key); ++ if (drush_drupal_major_version() <= 9) { ++ $searchpath[] = drupal_get_path('theme', $key); ++ } ++ else { ++ $searchpath[] = \Drupal::service('extension.list.theme')->getPath($key); ++ } + } + break; + } ~~~ -core/modules/dblog/src/Logger/DbLog.php : - -~~~ - public function log($level, $message, $context) { -~~~ - -vendor/psr/log/src/LoggerInterface.php : - -~~~ - public function log($level, string|\Stringable $message, $context): void; -~~~ - -./psr/log/src/LoggerTrait.php - -core/lib/Drupal/Core/Logger/LoggerChannel.php - -WIP - - ## Utilisation Le principe d'Aegir est de définir des plateformes associés à un serveur web (ou plusieurs, cf plus bas le [mode multi-serveurs](HowtoAegir#multi-serveurs)).