A Drush használata: Legyél te a Drupal parancssor mestere

Üdvözöllek, Drupal fejlesztő! Ha valaha is érezted úgy, hogy a Drupal admin felülete kényelmetlen és lassú bizonyos feladatok elvégzéséhez, vagy ha automatizálni szeretnéd a mindennapi munkafolyamataidat, akkor a Drush a legjobb barátod lesz. Ez a cikk egy átfogó útmutatót nyújt ahhoz, hogyan válhatsz a Drush mesterévé, és hogyan gyorsíthatod fel drámaian a Drupal fejlesztési és karbantartási feladataidat.

Mi az a Drush, és miért van rá szükséged?

A Drush (Drupal Shell) egy hatékony parancssori eszköz a Drupal számára. Képzeld el, hogy a Drupal admin felületének minden funkcióját, sőt annál is többet elérhetsz egy egyszerű terminálból, billentyűzeted és az agyad gyorsaságával. Nincs több kattintgatás, nincs több oldalbetöltés, csak tiszta, hatékony automatizálás és sebesség.

Miért elengedhetetlen a Drush minden Drupal fejlesztő számára?

  • Sebesség és Hatékonyság: Gyorsabb, mint a grafikus felhasználói felület. A cache ürítés, modulok telepítése vagy felhasználók kezelése pillanatok alatt elvégezhető.
  • Automatizálás: Lehetővé teszi komplex feladatok szkriptelését és automatizálását, ami elengedhetetlen a CI/CD (folyamatos integráció/folyamatos szállítás) munkafolyamatokban.
  • Konzisztencia: Ugyanazokat a parancsokat futtathatod különböző környezetekben (helyi gép, fejlesztői, staging, éles szerver), biztosítva az egységes viselkedést.
  • Fejlesztői Eszközök: Számos olyan funkciót kínál, amelyeket az admin felületen nem találsz meg, például adatbázis-műveletek, konfiguráció-importálás/exportálás, vagy akár egyedi parancsok létrehozása.
  • Támogatás: A Drupal közösség széles körben támogatja és használja, így rengeteg dokumentációt és segítséget találsz hozzá.

Röviden: A Drush használatával nem csak időt takarítasz meg, hanem a Drupal parancssor mestere is leszel, ami elengedhetetlen a modern webfejlesztésben.

A Drush telepítése: Az első lépés a mesterség felé

A Drush telepítése ma már rendkívül egyszerű, köszönhetően a Composernek, a PHP csomagkezelőnek. A legtöbb modern Drupal projekt már Composer-alapú, ami leegyszerűsíti a függőségek kezelését.

1. Telepítés Composerrel (ajánlott)

A leggyakoribb és javasolt módszer a Drush telepítésére a projekt-specifikus Composer telepítés. Ez biztosítja, hogy a Drush verziója pontosan illeszkedjen a Drupal verziódhoz.

composer require drush/drush

Ez a parancs telepíti a Drush-t a projekt `vendor/bin` könyvtárába. Ezután a `vendor/bin/drush` paranccsal hívhatod meg. A kényelem érdekében sok fejlesztő beállítja a `PATH` változóját, vagy egy Composer szkriptet használ, hogy csak `drush` paranccsal is elérhető legyen.

2. A Drush Launcher telepítése (globális hozzáférés)

A Drush Launcher egy kis PHP script, amely segít megtalálni és futtatni a megfelelő Drush verziót a Drupal projekt gyökérkönyvtárából. Telepítsd globálisan:

composer global require drush/drush-launcher

Ez telepíti a `drush` parancsot a `~/.composer/vendor/bin` könyvtárba (vagy hasonló helyre, a Composer konfigurációdtól függően). Győződj meg róla, hogy ez a könyvtár benne van a rendszered `PATH` környezeti változójában. Ezt követően egyszerűen csak `drush` beírásával indíthatod el a parancsokat bármely Drupal projekt gyökérkönyvtárából.

Alapvető Drush parancsok: A mindennapi eszköztár

Miután telepítetted a Drush-t, ideje megismerkedni azokkal a parancsokkal, amelyeket a leggyakrabban fogsz használni. Navigálj a Drupal projekt gyökérkönyvtárába, és kezdődhet a mágia!

1. drush status (drush st)

Ez a parancs alapvető információkat mutat a Drupal telepítésedről és a Drush környezetről. Ideális a hibakereséshez és a környezet ellenőrzéséhez.

drush status

2. drush cache:rebuild (drush cr)

A cache ürítés az egyik leggyakoribb feladat a Drupal fejlesztés során. A Drush-pal ez egyetlen parancs, ami hihetetlenül gyors.

drush cache:rebuild

Felejtsd el a kattintgatást az admin felületen! Ez a parancs a fejlesztő legjobb barátja.

3. drush user:login (drush uli)

Automatikus bejelentkezési link generálása. Ez rendkívül hasznos, ha elfelejtetted a jelszavadat, vagy gyorsan be szeretnél lépni a rendszerbe anélkül, hogy a bejelentkezési oldalt kellene keresgélned.

drush user:login

Ez kiír egy egyszeri bejelentkezési URL-t a terminálba, amit bemásolhatsz a böngésződbe.

4. drush site:install (drush si)

A Drupal telepítése a parancssorból! Ez felbecsülhetetlen értékű az automatizált teszteléshez és az új fejlesztői környezetek gyors beállításához.

drush site:install standard --db-url=mysql://user:pass@host/dbname --site-name="My Awesome Site" --account-name=admin --account-pass=admin

Ezzel a paranccsal egy teljes Drupal telepítést végezhetsz el, megadva az adatbázis részleteit, a webhely nevét és az elsődleges admin felhasználó adatait.

5. drush help [parancs]

Ha elakadtál, vagy többet szeretnél megtudni egy adott parancsról, a `drush help` a segítségedre lesz.

drush help cache:rebuild

Ez részletes leírást ad a parancsról és a hozzá tartozó opciókról.

Modulok és Témák Kezelése Drush-sal

A modulok és témák kezelése a Drush egyik leggyakrabban használt funkciója. Sokkal gyorsabb, mint az admin felületen keresztül.

1. drush pm:enable (drush en)

Modul(ok) engedélyezése. Több modult is megadhatsz egyszerre, szóközzel elválasztva.

drush pm:enable node taxonomy paragraphs

2. drush pm:disable (drush dis)

Modul(ok) letiltása.

drush pm:disable node

3. drush pm:uninstall (drush un)

Modul(ok) eltávolítása és adatbázis tábláinak törlése.

drush pm:uninstall webform_ui

Vigyázat! Ez adatvesztéssel járhat, ha a modul tárolt adatokat, és nem akartad törölni azokat. Mindig légy óvatos az `uninstall` paranccsal.

4. drush pm:list (drush pml)

Listázza az összes modult és témát, azok állapotával együtt.

drush pm:list --type=module --status=enabled

Konfiguráció kezelés a Drush segítségével

A konfigurációk importálása és exportálása a Drush egyik legfontosabb funkciója a modern Drupal fejlesztési munkafolyamatokban (Drupal 8+). Ez teszi lehetővé, hogy a fejlesztési környezetben végzett módosításokat könnyedén áthelyezd a staging vagy éles környezetbe.

1. drush config:export (drush cex)

Exportálja az aktuális webhely konfigurációit a fájlrendszerbe (általában a `sync` könyvtárba, amit a `settings.php` fájlban adsz meg). Ez a parancs elengedhetetlen, ha Git-tel verziókezeled a konfigurációkat.

drush config:export

A Drush figyelmeztetni fog a felülíródó fájlokra, és kérni fogja a megerősítést.

2. drush config:import (drush cim)

Importálja a fájlrendszerben lévő konfigurációkat az adatbázisba. Ez a parancs akkor hasznos, ha egy másik környezetből származó konfigurációs változásokat szeretnél alkalmazni a webhelyeden.

drush config:import

A Drush listázza az importálásra kerülő változásokat, és kérni fogja a megerősítést. Ne feledd, az `drush cim` futtatása előtt mindig végezz `drush cex`-et a fejlesztői környezetben lévő friss konfigurációk kiírásához, mielőtt pullolnál új config fájlokat!

Adatbázis műveletek Drush-sal

Az adatbázis kezelése a Drush-pal szintén gyors és hatékony, különösen a mentés és visszaállítás terén.

1. drush sql:dump

Létrehoz egy teljes adatbázis mentést (SQL fájlt). Ez a parancs a biztonsági mentések és a fejlesztői környezetek szinkronizálásának alapja.

drush sql:dump > backup.sql

A kimenetet átirányíthatod egy fájlba, ahogyan a példában is látható.

2. drush sql:cli

Megnyitja az adatbázis parancssori kliensét (pl. MySQL kliens), közvetlenül a Drupal adatbázishoz csatlakozva.

drush sql:cli

3. drush sql:query

Közvetlenül futtathatsz SQL lekérdezéseket a Drupal adatbázisán.

drush sql:query "SELECT name, mail FROM users LIMIT 5;"

Ez egy nagyon hatékony, de potenciálisan veszélyes parancs, óvatosan használd!

Felhasználók kezelése

A felhasználók kezelése a Drush-pal gyors és egyszerű.

1. drush user:create

Új felhasználó létrehozása.

drush user:create john [email protected] --password=password123

2. drush user:block / drush user:unblock

Felhasználó blokkolása vagy feloldása.

drush user:block john

3. drush user:password

Felhasználó jelszavának megváltoztatása.

drush user:password admin --password="new_strong_password"

Haladó Drush Funkciók és Best Practices

Miután elsajátítottad az alapokat, ideje mélyebbre ásni a Drush fejlettebb képességeibe, és megtanulni, hogyan használd a lehető leghatékonyabban.

1. Drush aliasok

A Drush aliasok a Drush egyik legerősebb funkciója. Lehetővé teszik, hogy rövid, emberi nyelven megfogalmazott neveket adj különböző Drupal webhelyeknek (helyi, fejlesztői, éles) vagy akár távoli környezeteknek, és futtass parancsokat rajtuk anélkül, hogy oda kellene navigálnod.

Hozd létre a `drush/sites/self.site.yml` fájlt a projekted gyökérkönyvtárában (vagy `~/.drush/sites/my_aliases.drush.yml` globálisan), és definiáld az aliasaidat:

# drush/sites/self.site.yml
local:
  root: /var/www/html/my-drupal-site/web
  uri: http://localhost:8000

dev:
  root: /var/www/html/my-drupal-site-dev/web
  uri: http://dev.example.com
  ssh: [email protected]
  paths:
    drush-script: /usr/local/bin/drush

Ezután futtathatsz parancsokat az alias segítségével:

drush @dev cache:rebuild

Ez futtatja a `cache:rebuild` parancsot a `dev` környezetben, akár SSH-n keresztül is, ha be van állítva a `ssh` opció. A Drush aliasok drámaian felgyorsítják a több környezettel való munkát, és csökkentik a hibák lehetőségét.

2. Drush konfigurációs fájlok

A Drush saját konfigurációs fájlokat használ, amelyekkel testre szabhatod a viselkedését. Ezeket jellemzően a `drush/drush.yml` (projekt-specifikus) vagy a `~/.drush/drush.yml` (globális) útvonalakon találod. Itt beállíthatsz alapértelmezett opciókat, aliasokat, vagy felülírhatsz bizonyos viselkedéseket.

# drush/drush.yml
drush:
  options:
    yes: true # Mindig automatikusan megerősíti a műveleteket (óvatosan használandó!)
  commands:
    core:
      launcher:
        auto-detect: true

3. Egyedi Drush parancsok írása

A Drush lehetővé teszi, hogy saját, egyedi parancsokat írj PHP-ban. Ez hihetetlenül hatékony, ha ismétlődő, projekt-specifikus feladataid vannak, amiket automatizálni szeretnél. Létrehozhatsz egy `drush` mappát a saját modulodban, és ott definiálhatod a parancsaida.

Például, egy `src/Commands/MyCustomCommands.php` fájlban:

namespace Drupalmy_moduleCommands;

use DrushCommandsDrushCommands;

/**
 * A Drush parancsok a my_module modulhoz.
 */
class MyCustomCommands extends DrushCommands {

  /**
   * Üdvözöl egy nevet.
   *
   * @param string $name A név, akit üdvözölhetünk.
   *
   * @command my-module:hello
   * @aliases mmh
   * @usage my-module:hello John
   *   Üdvözöljük Johnt.
   */
  public function hello($name) {
    $this->say(dt('Hello @name!', ['@name' => $name]));
  }

}

Ezután `drush my-module:hello World` paranccsal futtathatod a saját parancsodat.

4. Drush hooks

A Drush támogatja a hook-okat, hasonlóan a Drupal hook-okhoz. Ezekkel „beakaszthatod” a saját kódodat a meglévő Drush parancsok futtatása elé vagy után, bővítve vagy módosítva azok viselkedését. Például futtathatsz egy kiegészítő scriptet minden `config:import` után.

Tippek a Drush mesterévé váláshoz

  • Ismerd meg a Drush parancsait: Futtasd a `drush list` parancsot, hogy lásd az összes elérhető parancsot.
  • Használd a `drush help` parancsot: Minden parancshoz részletes segítséget kapsz vele.
  • Ne felejtsd el az `aliasokat`: Különösen, ha több webhelyen dolgozol, vagy több környezetben (dev, staging, prod).
  • Légy óvatos a `–yes` opcióval: Az `drush –yes` (vagy `-y`) automatikusan megerősít minden műveletet, ami veszélyes lehet, ha nem tudod pontosan, mit csinálsz. Csak szkriptekben vagy nagyon biztos helyzetekben használd.
  • Készíts biztonsági mentéseket: Mielőtt jelentős változtatásokat hajtanál végre (pl. `drush cim` vagy `drush sql:query`), mindig készíts adatbázis mentést (`drush sql:dump`).
  • Integráld a munkafolyamatodba: Használd a Drush-t minden nap, és hamarosan a második természeteddé válik.

Konklúzió

A Drush nem csupán egy eszköz; egy életérzés, egy filozófia a hatékony webfejlesztéshez. Segítségével automatizálhatod a repetitív feladatokat, felgyorsíthatod a fejlesztési ciklusokat, és megbízhatóbbá teheted a telepítéseket. A Drush elsajátításával nemcsak egy jobb Drupal fejlesztővé válsz, hanem időt takarítasz meg, és a figyelmedet a valóban fontos feladatokra összpontosíthatod.

Reméljük, hogy ez az átfogó útmutató segít neked elindulni a Drupal parancssor mestere felé vezető úton. Ne habozz kipróbálni a különböző parancsokat, fedezd fel a Drush végtelen lehetőségeit, és hamarosan rájössz, hogy nélküle már el sem tudnád képzelni a Drupal fejlesztést. Hajrá, légy te a Drush mestere!

Leave a Reply

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük