Ddev-aljibe es un plugin creado por la empresa Metadrop para añadir en una única instalación todas las dependencias necesarias para escribir y ejecutar test como la ejecutar herramientas de análisis de código estático de PHP que se pueden usar en proyectos de Drupal que se ejecutan mediante Ddev.
Vamos con los pasos para instalar e implementar Aljibe y comentar que cosas me he encontrado.
Tengo que avisar que previamente en mi proyecto en Ddev ya había instalado y configurado GrumPHP junto a PHPCS, PHPStan y PHPMD.
El primer paso para instalar ddev-aljibe es añadir el plugin ddev add-on get metadrop/ddev-aljibe, una vez añadido el plugin reiniciamos ddev restart y ejecutamos ddev aljibe-assistant, el asistente pasará a realizarnos una serie de preguntas para realizar la instalación.
Una cosa que tuve que hacer a mitad del proceso y que se puede hacer previamente es actualizar el proyecto ddev composer update.
Al ejecutar el asistente este irá haciendo una serie de preguntas, las respuesta que yo di para que no me sobrescribiera el proyecto son las siguientes:
Please enter the project name (default XXXX):
En esta opción simplemente pulsar intro.
By default, Drupal 11 will be installed. Do you wnat to install Drupal 10 instead? [y/N]
En esta opción indicamos 10 u 11, en mi caso era un proyecto en Drupal 11 así que marqué N
Do you want to initialize a git repository for your new project? [Y/n]
En mi caso como ya tenía un proyecto de git montado señalé n.
Do you want to install Drupal? [Y/n]
Como el proyecto ya tenía Drupal instalado le dije que no.
A continuación pasó a instalar todo.
Un problema que sufrí es que en la instalación me movió el paquete vlucas/phpdotenv de requirement a requirement-dev en el archivo composer.json, no tengo claro si esto es porque yo tenía alguna configuración rara o es así como lo hace, pero lo volví a mover a requirement y todo volvió a funcionar.
Al ejecutar ddev behat me daba los siguientes errores.
PHP Fatal error: Declaration of NuvoleWeb\Drupal\DrupalExtension\ServiceContainer\DrupalExtension::configure(Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $builder) must be compatible with Drupal\DrupalExtension\ServiceContainer\DrupalExtension::configure(Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $builder): void in /var/www/html/vendor/nuvoleweb/drupal-behat/src/DrupalExtension/ServiceContainer/DrupalExtension.php on line 55
Fatal error: Declaration of NuvoleWeb\Drupal\DrupalExtension\ServiceContainer\DrupalExtension::configure(Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $builder) must be compatible with Drupal\DrupalExtension\ServiceContainer\DrupalExtension::configure(Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $builder): void in /var/www/html/vendor/nuvoleweb/drupal-behat/src/DrupalExtension/ServiceContainer/DrupalExtension.php on line 55
Failed to run behat : exit status 255
El parche para solucionarlo:
--- a/src/DrupalExtension/ServiceContainer/DrupalExtension.php
+++ b/src/DrupalExtension/ServiceContainer/DrupalExtension.php
@@ -16,7 +16,7 @@ class DrupalExtension extends BaseDrupalExtension {
/**
* {@inheritdoc}
*/
- public function load(ContainerBuilder $container, array $config) {
+ public function load(ContainerBuilder $container, array $config): void {
parent::load($container, $config);
// Load default service definitions.
@@ -52,7 +52,7 @@ class DrupalExtension extends BaseDrupalExtension {
/**
* {@inheritdoc}
*/
- public function configure(ArrayNodeDefinition $builder) {
+ public function configure(ArrayNodeDefinition $builder): void {
parent::configure($builder);
$builder->append(
También encontré que se modificaron los archivos .gitignore, settings.php, grumphp.yml; no tengo claro si la modificación de .gitignore y settings.php es por la actualización a la ultima versión del core de Drupal o por la instalación del plugin, en el caso del archivo grumphp.yml si que es cosa de Aljibe, mi solución fue revisar lo que había cambiado, lo que me gustaba mantenerlo, lo que no me gustaba quitarlo y recuperar lo que yo tenía.
Por ejemplo yo sigo Conventional Commits mientras que Metadrop propone commits que empiezan por "Issue #$number: ....". También revisé las configuraciones de PHPStan, PHPmd para ver si lo que había añadido en las configuraciones es lo mismo que yo tenía añadido.
Top comments (0)