Skip to main content

Použití Composeru v projektu Drupal

Při vývoji projektu Drupal s Composerem můžete instalovat moduly a témata pomocí příkazů Composeru, můžete také aktualizovat tyto moduly a témata na novou verzi pomocí příkazů Composeru.
Taşkın Maksim
Taşkın Maksim
10 min. read
drupal-de-composer-kullanimi

V tomto článku se zaměříme na následující téma: 

  • Použití často používaných příkazů Composeru, které budou krok za krokem aplikovány na projekt Drupal. 
  • Instalace a záznam projektu Drupalu (jádro, modul, téma, profil, atd.) s pomocí Composeru. 
  • Převedení existující aplikace na aplikaci, která je seznámena s Composerem. 

Do konce tohoto článku byste měli vědět, jak instalovat a aktualizovat moduly a témata Drupalu pomocí Composeru. 

Cíl 

Vytvoření projektu Drupal založeného na Composeru a instalace modulů a témat Drupalu. 

Předpoklady

  • Nejnovější verze Composeru

    composer self-update 
  • Můžete aktualizovat Composer pomocí následujícího příkazu.
  • Vytvořte soubor composer.json pro aktuální projekt Drupalu.
  • Spusťte všechny příkazy pro aktuální projekt Drupalu ve hlavní cestě projektu.

Vytváření nového projektu Drupal 

Nejjednodušší způsob, jak vytvořit projekt Drupal s Composerem, je použití šablony. Pro tohoto účelu budeme používat příkaz create-project v Composeru. Když spustíte příkaz composer create-project some/project, tento příkaz vytvoří váš nový projekt klonováním šablony some/project. 

Váš projekt bude založen na šabloně some/project.  Například soubor composer.json ve šabloně some/project bude základem vašeho projektu. Poté nemá some/project žádný vliv na váš projekt. 

Na Drupal.org můžete najít několik populárních šablon pro vytváření projektu Drupal s Composerem. 

NOTdrupal/drupal projekt byl ukončen a není doporučován. 

V tomto článku použijeme nejvíce doporučovaný a široce používaný projekt drupal-composer/drupal-project.  Tato šablona poskytuje dostatečnou konfiguraci pro vývoj projektu Drupal s Composerem. 

drupal-composer/drupal-project  Spusťme následující příkaz pro vývoj projektu Drupalu s použitím této šablony:

$ composer create-project drupal-composer/drupal-project:8.x-dev my-project --stability dev --no-interaction
$ cd my-project

Pro více informací o dokumentaci projektu drupal-composer/drupal-project.

Začněme používat Composer k správě existující aplikace Drupal.

Začít spravovat projekt Drupal s Composerem, který není spravován s Composerem, může být na začátku trochu obtížné. Přesná metoda správy projektu Drupal s Composerem závisí na struktuře složek aplikace Drupal a může vyžadovat několik dalších kroků. 

Existuje několik nástrojů, které automatizují proces převodu projektu Drupal na Composer:

Pokud selžete s výše uvedenými nástroji, můžete to udělat následujícím způsobem.

  • Přepněte do složky s .git složkou pomocí terminálu. Je mimořádně důležité, abyste provedli příkazy z správného adresáře. U některých projektů může složka obsahovat přímo projekt Drupalu. U jiných projektů může být projekt Drupalu pod docroot/core a web/core. 
     
  • Smažte soubor composer.json a složku vendor. Ve vašem projektu by měl být pouze jeden soubor composer.json a složka vendor. Pokud existuje starý nebo nepoužívaný soubor composer.json nebo složka vendor, smažte je z projektu.
$ cd drupal/project/site
$ find . -name "composer.json" -exec rm -rf {} \;
$ find . -name "composer.lock" -exec rm -rf {} \;
$ find . -name "vendor" -exec rm -rf {} \;

Vytvořte nový soubor composer.json podle následující šablony:

{
 "name": "drupalprojem",
 "license": "proprietary",
 "type": "project",
 "repositories": {
   "drupal": {
     "type": "composer",
     "url": "https://packages.drupal.org/8"
   },
   "asset-packagist": {
     "type": "composer",
     "url": "https://asset-packagist.org"
   }
 },
 "require": {
   "composer/installers": "^1.2.0",
   "cweagans/composer-patches": "^1.6.4",
   "drupal/composerize": "1.x-dev",
   "drupal-composer/drupal-scaffold": "^2.4",
   "oomphinc/composer-installers-extender": "^1.1",
   "wikimedia/composer-merge-plugin": "^1.4.1"
 },
 "require-dev": {
   "drupal/console": "^1.0.2",
   "drush/drush": "^9.0.0"
 },
 "extra": {
   "enable-patching": true,
   "installer-types": ["bower-asset", "npm-asset"],
   "installer-paths": {
     "docroot/core": ["type:drupal-core"],
     "docroot/modules/contrib/{$name}": ["type:drupal-module"],
     "docroot/modules/custom/{$name}": ["type:drupal-custom-module"],
     "docroot/profiles/contrib/{$name}": ["type:drupal-profile"],
     "docroot/profiles/custom/{$name}": ["type:drupal-custom-profile"],
     "docroot/themes/contrib/{$name}": ["type:drupal-theme"],
     "docroot/themes/custom/{$name}": ["type:drupal-custom-theme"],
     "docroot/libraries/{$name}": ["type:drupal-library", "type:bower-asset", "type:npm-asset"],
     "drush/contrib/{$name}": ["type:drupal-drush"],
     "special/package/dir/": ["my/package"]
   },
   "merge-plugin": {
     "include": [
       "docroot/modules/custom/*/composer.json"
     ],
     "replace": false,
     "ignore-duplicates": true
   },
   "patches": {}
 },
 "minimum-stability": "dev",
 "prefer-stable": true
}
  • Předpokládaný příklad předpokládá, že Drupal je umístěn v podadresáři docroot. Aby odpovídalo struktuře vašeho adresáře, nahraďte všechny řetězce obsahující "docroot".
  • Nahraďte "name" názvem vašeho projektu a přidejte Drupal Core do svého projektu příkazem composer require drupal/core 8.6.0.

Nyní máte funkční soubor composer.json, který pohodlně vyžaduje jádro Drupalu a různé pluginy potřebné k správě webu Drupalu pomocí Composeru.

Nyní můžete instalovat moduly, témata, profily atd. s Composerem. Jedná se o manuální proces, který vyžaduje vaši kontrolu.

Chcete-li do projektu přidat další moduly, použijte příkaz composer require drupal/[název-modulu]. Tímto způsobem nainstalujete novou stabilní verzi nebo upgradujete verzi, pokud je již nainstalována. Chcete-li specifikovat verzi, můžete to udělat pomocí příkazu composer require drupal/[název-modulu] [verze].

Spusťte tento příkaz pro všechny contrib moduly Drupalu. Můžete jej také spustit k instalaci dalších modulů. Všechny nainstalované moduly můžete zobrazit pomocí nástroje Drush. Drush musí být nainstalován v lokální oblasti. Drush se dotazuje databáze Drupalu a zobrazuje nainstalované moduly:

 $ ./vendor/bin/drush pml --no-core --status=enabled
---------------- --------------------------------------- --------- ----------------
 Package          Name                                    Status       Version
---------------- --------------------------------------- --------- ----------------
 Administration   Admin Toolbar (admin_toolbar)           Enabled      8.x-1.27
---------------- --------------------------------------- --------- ----------------

Pro optimální standardní práci smažeme příspěvkové moduly z verzovacího systému (git).

Přidejte následující řádky do nového .gitignore souboru nebo do existujícího .gitignore souboru: 

docroot/core
docroot/modules/contrib
docroot/themes/contrib
docroot/profiles/contrib
docroot/libraries

Po přidání těchto řádků smažte následující soubory z verzovacího systému:

git rm --cached docroot/core
git rm --cached docroot/modules/contrib
git rm --cached docroot/themes/contrib
git rm --cached docroot/profiles/contrib
git rm --cached docroot/libraries
git rm --cached vendor
 

Když spustíte tyto příkazy, může se objevit chyba "fatal: pathspec 'vendor' did not match any files," protože tyto soubory nejsou ve složce. To je normální.

Tím jsme změnili projekt Drupal, který nebyl vytvořen s Composerem, na strukturu vytvořenou pomocí Composeru.

Vytváření nového projektu v Drupalu s pomocí Composeru

Pro instalaci balíčku Drupalu nejprve spusťte následující příkaz pomocí výše uvedeného šablony composer.json. Alespoň soubor composer.json by měl obsahovat položku repositories a konfiguraci installer-paths. 

$ composer require drupal/[proje]

Například pro instalaci modulu pathauto: 

$ composer require drupal/pathauto

Výchozím způsobem se instaluje nejnovější verze, abyste nainstalovali konkrétní verzi:

$ composer require drupal/pathauto 1.0.0

Tento příkaz může vyvolat chybu, pokud závislosti jiných modulů nejsou kompatibilní. V takovém případě můžete instalaci dokončit tím, že změníte verzi, dokud nejsou závislosti splněny, nebo můžete nainstalovat nejnovější verzi. Také v jazyce Composer znamená "install" nainstalovat kód, aktualizovat soubor composer.lock a umožnit přístup kódu s autoloaderem. Stále je však nutné nainstalovat Drupal projekt prostřednictvím rozhraní nebo s nástrojem Drush do databáze Drupalu.

Pro aktualizaci závislých modulů.

Pro aktualizaci libovolného modulu: 

composer update [vendor]/[package]

Například pro aktualizaci drupal/pathauto:

$ composer update drupal/pathauto

Aktualizuje pouze modul drupal/pathauto, i když je závislým modulem tohoto modulu.

Pro aktualizaci modulu s jeho závislými moduly:

$ composer update drupal/pathauto --with-all-dependencies

Pro aktualizaci s určením minimální verze: 

$ composer require drupal/pathauto:^1.1.0 --update-with-all-dependencies

Pro aktualizaci všech modulů:

$ composer update

Stejně jako při aktualizaci jakéhokoli projektu Drupalu, byste měli provést aktualizace databáze po stažení nového modulu. Pokud používáte Správu konfigurace Drupalu, měli byste znovu exportovat konfigurace po aktualizaci databáze.

Aktualizace jádra Drupalu pomocí Composeru

Jádro Drupalu lze aktualizovat pomocí Composeru stejně jako jakýkoli jiný modul. Jak je uvedeno výše, můžete aktualizovat drupal/core tím, že místo názvu modulu zadáte drupal/core a spustíte příkazy. Je dobrý nápad nastavit novou minimální verzi pro drupal/core, aby nedošlo k neúmyslnému snížení verze.

Stejně jako při aktualizaci jakéhokoli projektu Drupalu, byste měli provést aktualizace databáze po stažení nového modulu.

Načítání závislostí modulu pomocí Composeru

Představte si, že existuje modul, který jsme nainstalovali bez Composeru. Jak nainstalujeme závislosti uvedené v souboru composer.json tohoto modulu? Pokud se ptáte na tuto otázku, jste ve skutečnosti na nesprávné cestě. Nejprve musíte použít Composer k řízení celého projektu Drupalu a modul nainstalovat pomocí Composeru. Poté budou jeho závislosti automaticky nainstalovány. Jako alternativu k používání Composeru můžete v případě, že modul podporuje Ludwig, použít Ludwig Ludwig, k instalaci závislostí modulu. 

Our Offices

Drupart Locations

Naše oddělení

London

151 West Green Road, London, England

442038156478

[email protected]

Drupart R&D

GOSB Teknopark Hi-Tech Bina 3.Kat B3 Gebze - KOCAELİ

+90 262 678 8872

[email protected]

Newark

112 Capitol Trail Suite, A437 Newark DE, 19711

+17406666255

[email protected]

Wiesbaden

Hinterbergstraße 27
65207 Wiesbaden
Deutschland

+49 (0) 6151 – 492 70 23

[email protected]