Nouveaux ajouts pour Drupal 10

This commit is contained in:
Gregory Colpart 2024-02-23 08:59:26 +01:00
parent 6cddb7a3ae
commit d2c21c8798

View file

@ -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)).