Drush nebo Drupal Console - dva nástroje pro Drupal v příkazové řádce

Drush už tady s námi je nějaký čas, Drupal Console je novinka pro Drupal 8. Nástroje v něčem podobné, zároveň ale i dost rozdílné. Takže tady jsou moje poznatky.

S Drushem jsem se potkal u Drupalu 7, a rychle se stal neocenitelným pomocníkem. Veškeré operace jsou vždy mnohem rychlejší v příkazovém řádku, než přes webový prohlížeč. Ať již jednoduchá změna proměnné (drush vset) nebo reindexace SOLRu. Takové věci uměl Drush v základu, popř. tvůrci modulů mohli integrovat Drush operace.

33Drush vs Drupal console

Drush

Drush existuje v několika verzích, pro různé verze Drupalu, potažmo PHP. Rozhodně navštivte stránku s instalací http://docs.drush.org/en/master/install/, kde najdete vše potřebné.

Jak vidno, Drush 9 podporuje jen Drupal od verze 8.4. Zároveň je tu i poznámka:

Drush 9 only supports one install method. It requires that your Drupal 8 site be built with Composer and Drush be listed as a dependency.

Takže pozor na to! Na internetu najdete spoustu návodů na Drush/Drupal, které už prostě nebudou fungovat.

33Drush Drupal Compatibility

Instalace

Jak již bylo zmíněno, nyní existuje jen jediná správní cesta. Takže ideálně přes drupal-project https://github.com/drupal-composer/drupal-project

Pak už bude Drush součástí této instalace - adresář vendor/drush/ (vendor/bin/drush).

Drush Launcher

Opět, jak je uvedené v dokumentaci, je dobré nainstalovat si tzv. Drush Launcher. Je to vlastně wrapper. Díky němu nebudete muset zadávat plnou cestu ke skriptu, a také vždy zavolá ten správný drush v daném Drupal projektu.

Instalace je snadná a dobře popsaná na stránce projektu https://github.com/drush-ops/drush-launcher.

Mně se osvědčilo vytvořit přejmenovat si ho na drush9 (/usr/local/bin/drush9). Potom tam můžu mít třeba ještě starší drush8 na správu projektů postavených na Drupal 7.

 

Drupal Console

Podobný nástroj, podobné využití. Jeho výhodou i nevýhodou zároveň může být, že je nový. Čas ukáže.

Instalace

Podobně jako Drush, Drupal Console je již součástí drupal-project. Takže zkontrolujte opět adresář vendor/drupal/ (resp. vendor/bin/drupal).

Drupal Console Launcher

I Drupal Console má vlastní launcher, stejně snadno instalovatelný https://drupalconsole.com/docs/en/getting/launcher

 

Poznámky z používání

  • Drupal Console se hodí generování struktury nového modulu drupal generate
  • Klasika - update databáze a vymazání cache drush9 updatedb && drush9 cr

Instalace modulů

drush pm:enable simplei skončí chybovou hláškou, že modul neexistuje (starší Drush 8 ho stáhnul, když neexistoval). drupal module:install simplei ho sice stáhne a nainstaluje, ale úplně ignoruje fakt, že používáme Composer. Takže taky špatně.

Ideálně tedy nainstalovat přes Composer composer require 'drupal/simplei:^1.0' a pak povolit přes Drush.

Aktualizace modulů

drush pm:security nic nenajde, ale composer outdated 'drupal/*' ano

33Aktualizace modulů: Drush vs Drupal console