Pasar al contenido principal

Konfigurieren Sie Drush für Drupal 8 so, dass es vom Projekt-Hauptverzeichnis aus arbeitet

02. Enero 2017

Konfigurieren Sie Drush für Drupal 8 so, dass es vom Projekt-Hauptverzeichnis aus arbeitet

by Jürgen Haas

Drupal 8-Projekte werden in den meisten Fällen vom Composer gesteuert und nach Best Practices sieht die Verzeichnisstruktur eines Drupal-Projekts etwa so aus (weitere Details wurden bereits hier):

- Projekt Root
  - /config
  - /console
  - /drush
  - /dateien
  - /Einstellungen
  - /Anbieter
  - /web
    - /kern
    - /bibliotheken
    - /Module
    - /Profile
    - /seiten
    - /themen
    - index.php
  - .gitignore
  - komponist.json
  - composer.lock

DrupalConsole wurde bereits so erweitert, dass man es von überall innerhalb des Verzeichnisbaums aufrufen kann. Drush setzt jedoch voraus, dass Ihr aktuelles Verzeichnis irgendwo unterhalb des Drupal-Stammverzeichnisses liegt, was im obigen Beispiel das Verzeichnis /root/web ist. Das kann ein Problem sein. Während der Entwicklung werden Sie oft zum Projektstamm wechseln müssen, um etwas wie composer update aufzurufen und noch öfter zum Drupal-Stammverzeichnis, um drush cache-rebuild aufrufen zu können. Das ständige Wechseln der Verzeichnisse ist, gelinde gesagt, nicht schön. Mit DrupalConsole wäre das nicht nötig und man könnte beides, Composer und DrupalConsole, vom Root-Verzeichnis des Projekts aus erledigen. Aber es gibt Gründe, warum Sie Drush verwenden wollen, entweder ausschließlich oder als Ergänzung.

Dafür gibt es eine schöne und einfache Lösung. Sie müssen nur die folgenden Codezeilen in die Datei drushrc.php einfügen, entweder im Unterverzeichnis /.drush Ihres Benutzer-Homes oder im globalen Drush-Konfigurationsverzeichnis, z.B. /etc/drush auf Linux-basierten Systemen.

Hier ist der Code:

if (file_exists('./web/index.php') && file_exists('./web/core')) {
  $options['r'] = realpath('./web');
}

Was macht das? Nun, es testet, ob das aktuelle Verzeichnis das Stammverzeichnis des Projekts ist, indem es nach dem index.php und dem core Unterverzeichnis in einem web Unterverzeichnis sucht. Wenn das der Fall ist, fügt es eine Option r mit dem echten Pfad des Drupal-Stammverzeichnisses hinzu, die Drush mitteilt, von wo aus Drupal gebootstrapt werden soll.

So einfach ist es und es funktioniert einfach. Bis jetzt keine Nachteile erkannt.

Tools

Añadir nuevo comentario

Texto sin formato

  • No se permiten etiquetas HTML.
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.
CAPTCHA
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.