Composer & PHP Troubleshooting: Kompletní průvodce

Pokud používáte Composer společně s PHP a setkáte se s problémy, tento návod vás provede nejčastějšími komplikacemi, od správné instalace Composeru, přes konfiguraci PHP, až po ladění v IDE jako IntelliJ IDEA.

Co je Composer a proč se s ním mohou vyskytnout problémy

Composer je nástroj pro správu závislostí v PHP. Umožňuje jednoduše přidávat, spravovat a aktualizovat knihovny třetích stran. V praxi ale mohou nastat problémy, například:

• Konflikty mezi verzemi PHP.

• Chybějící PHP rozšíření.

• Nesprávné nastavení prostředí (CLI vs webový server).

• Problémy s IDE, jako je IntelliJ IDEA.

Následující průvodce vás provede krok za krokem řešením těchto situací.

1. Kontrola Composeru a PHP

Začněte ověřením, že Composer i PHP jsou správně nainstalované a používají odpovídající verze.

Zkontrolujte Composer:

composer --version

Výstup by měl ukázat aktuální verzi Composeru.

Zkontrolujte PHP:

php --version

Zkontrolujte, zda verze PHP odpovídá požadavkům vašeho projektu a zda CLI používá stejnou verzi PHP jako webový server.

Pokud php8.2 není dostupné ani po přidání do PATH, můžeš nainstalovat další instanci PHP 8.2 přímo přes Homebrew, to je ale spíš nouzovější situace, správně by se měla chytit php verze z MAMP:

brew install php@8.2
brew link --force php@8.2

2. Instalace Composeru

Pokud Composer není nainstalovaný, můžete jej snadno přidat. Tento postup je univerzální a bude fungovat na většině systémů.

Manuální instalace Composeru:

1. Stáhněte instalační skript:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

2. Ověřte integritu instalačního skriptu:

• Získejte aktuální SHA-384 checksum z Composer download stránky.

• Ověřte skript:

php -r "if (hash_file('SHA384', 'composer-setup.php') === '<SHA384_KEY>') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

3. Spusťte instalaci:

php composer-setup.php

4. Přesuňte Composer na globální místo (Mac || Linux):

sudo mv composer.phar /usr/local/bin/composer

5. Ověřte instalaci:

composer --version

3. Použití správné PHP verze

Pokud máte na systému více verzí PHP (například kvůli MAMP nebo Homebrew), může Composer používat špatnou verzi. Chcete-li zajistit, že Composer používá konkrétní PHP:

Explicitní spuštění Composeru:

/path/to/php /usr/local/bin/composer install

Pro MAMP:

/Applications/MAMP/bin/php/php8.2.0/bin/php /usr/local/bin/composer install

4. Problémy s chybějícím composer.json

Pokud Composer hlásí chybu Composer could not find a composer.json file, zkontrolujte:

1. Že se nacházíte ve správném adresáři projektu:

cd /path/to/project

5. Ladění Composeru

Pro detailnější výstup při řešení problémů spusťte Composer v debug režimu:

composer install -vvv

Tím získáte podrobný výstup, který vám pomůže identifikovat problém.

Pokud nechcete stále přidávat plnou cestu, vytvořte alias pro Composer, který bude používat správnou verzi PHP:

nano ~/.zshrc
// pokud chybí tento řádek, tak přidat
export PATH="/Applications/MAMP/bin/php/php8.2.0/bin:$PATH"
// přidejte alias
alias composer="/Applications/MAMP/bin/php/php8.2.0/bin/php /usr/local/bin/composer"
// načtěte změny
source ~/.zshrc
// ověřte funkční composer
composer --version

6. Integrace s IntelliJ IDEA

Pro hladkou práci v IntelliJ IDEA postupujte takto:

Nastavení PHP:

1. Preferences > Languages & Frameworks > PHP.

2. Nastavte cestu k PHP interpretru (například /Applications/MAMP/bin/php/php8.2.0/bin/php).

3. Ujistěte se, že jsou načtená všechna požadovaná rozšíření.

Nastavení Composeru:

1. Preferences > Languages & Frameworks > PHP > Composer.

2. Nastavte cestu k Composeru: /usr/local/bin/composer.

3. Vyberte správný PHP CLI interpretr (PHP 8.2).

Tipy a triky

Composer cache: Pokud se objeví problémy s instalací balíčků, vyčistěte cache Composeru:

composer clear-cache

Export cesty k PHP: Přidejte cestu k PHP do PATH, abyste nemuseli zadávat plnou cestu:

export PATH="/Applications/MAMP/bin/php/php8.2.0/bin:$PATH"

Velká nouze: Uprav composer.json, aby explicitně zahrnoval platformní požadavky:

"config": {
  "platform": {
    "php": "8.2.0"
  }
}


composer update --lock
composer install

Velká velká nouze: Pokud composer jede ale prostě nevidí CLI, tak to zkuste ignorovat následným příkazem, pokud se vendor vytvoří, tak máte na půl vyhráno. V mém případě haprovala IMAP knihovna…

composer install --ignore-platform-reqs

Ověření načtené PHP CLI:

Cesta do MAMP ini mimo admina

nano /Applications/MAMP/bin/php/php8.2.0/conf/php.ini
php -m | grep imap
<?php
if (extension_loaded('imap')) {
    echo "IMAP is loaded\n";
} else {
    echo "IMAP is not loaded\n";
}
?>

Závěr

Tento průvodce by měl vyřešit většinu problémů, které mohou nastat při práci s Composerem a PHP. Pokud se problém opakuje, vždy ověřte:

1. Správnou verzi PHP.

2. Dostupnost požadovaných rozšíření.

3. Správné umístění composer.json.


Comments

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *