Composer 2.x: i třikrát rychlejší instalace vašich projektů

Nový Composer si zatím stáhnete jenom v podobě zdrojového kódu, který je potřeba zkompilovat do spustitelného balíčku, ale to nic nebrání jeho otestování. Slibuje totiž výrazné zvýšení své rychlosti a optimalizaci spotřeby systémových zdrojů.

Když jsem četl článek na webu bitExpert, zajásal jsem. Autor popisuje, jak je nový Composer dvaapůlkrát rychlejší při instalaci e-commerce platformy Magento. Tu sice nepoužívám, ale rozhodl jsem se nový Composer vyzkoušet v kombinaci s Drupalem 8.

Jakkoli je správa Drupalu přes Composer návyková, zejména pokud v projektu používáte i knihovny třetích stran, je to přeci jenom časově náročnější než u klasické instalace. Dříve jste si stáhli nějaký modul v administraci nebo přes drush prakticky okamžitě, dnes spouštíte Composer a čekáte, než proběhne jeho kontrola a následně stažení balíčků.

Composer 2.x slibuje výraznou optimalizaci, což vzbudilo mé nadšení. Měl by mít i menší spotřebu paměti. To bych ocenil asi více než tu rychlost. Takto musím u řady projektů spouštět composer update na počítači, na vzdálený server nakopírovat composer.json & lock a tam pak spustit composer install. Jinak Composer na serveru či hostingu havaruje na nedostatku paměti.

Spotřebu paměti ale změřit neumím, takže jsem se potěšil alespoň lepšími čísly u času instalace.

Jak si rozběhnout Composer 2.x

Nejprve něco málo k instalaci aktuální vývojové verze Composeru. Pokud kouknete na jeho domovskou stránku, najdete tam ke stažení poslední snapshot i stable verzi. Ale ty se týkají jedničkové řady.

Instrukce k instalaci ze zdrojového kódu na GitHubu najdete poněkud ukryté, a to na konci dokumentu Contributing to Composer. Tedy:

  • Stáhnete z GitHubu klon repozitáře
  • Potřebujete fungující composer v jakékoli dosavadní verzi
  • Spustíte instalaci dle příkazu ve zmíněném dokumentu

Nemusíte se bát, zkompilovaný Composer nepřepíše balíček ve vašem systému. Najdete jej v podsložce bin/composer, tam kde jste spustili sestavení ze zdrojového kódu.

Jak jsem měřil rychlost Composeru s Drupalem

Příkaz pro instalaci Drupalu v aktuální verzi pomocí composeru je následující:

composer create-project drupal/recommended-project

Vytvořil jsem tedy skript run.sh s následujícím obsahem:

#!/bin/bash
composer create-project drupal/recommended-project

Ten jsem následně spouštěl příkazem time bash ./run.sh.

Výsledky jsou následující:

PHP 7.3.9 Composer 1.10.5 1 m 4s
PHP 7.3.9 Composer 2.0-dev+source 21 s
PHP 7.4.2 Composer 1.10.5 1 m 3s
PHP 7.4.2 Composer 2.0-dev+source 16 s

Použitá konfigurace: iMac (Retina 5K, 27-inch, Late 2015), 4GHz Intel Core i7, 32 GB RAM, SSD. PHP je z aplikace MAMP. Samozřejmě, před každým testem byla vymazána cache Composeru. I když to tak na ilustračním screenshotu nevypadá ;-)

Composer 2.x přináší i některé další změny a je možné, že určité balíčky a pluginy vám s ním nebudou zatím fungovat stoprocentně. Ostatně, je to vývojová verze. V případě instalace Drupalu jsem musel vypnout kontrolu platformy pomocí přepínače --ignore-platform-reqs.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru