Composer to narzędzie służące do instalacji, konfiguracji i usuwania pakietów w danym projekcie opartym o język PHP. Z Composera korzysta większość gotowych rozwiązań np: Symfony, Magento, Doctrine. Dzięki Composerowi instalacja tak dużych środowisk jest bardzo prosta. Wszystko odbywa się automatycznie i nie musimy znać zależności pomiędzy różnymi modułami i bibliotekami. Listę składowych projektu tworzymy w formacie JSON, w pliku composer.json. Według tego schematu Composer sam wyszukuje w Internecie, instaluje i/lub aktualizuje składniki Twojego projektu.
INSTALACJA
Composer można pobrać i zainstalować za pomocą programu Composer-Setup.exe lub
z wiersza poleceń:
1 2 3 4 |
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" |
W katalogu instalacji powinien pojawić się plik composer.phar. Aby sprawdzić wersję Composera , przy okazji upewnić się, że wszystko gra, wykonaj polecenie:
1 |
php composer.phar -v |
KONFIGURACJA
Na wstępie tego artykułu wspomniałem o pliku composer.json i teraz go utworzymy. Plik ten powinien znajdować się w tym samym katalogu co composer.phar.
Podstawowy schemat:
1 2 3 4 5 |
{ "require": { "dostawca/pakiet": "wersja" } } |
- require – definiuje listę wymaganych bibliotek / pakietów w naszym projekcie,
- dostawca/pakiet – skrócona nazwa, np: doctrine/orm, twig/twig itp,
- wersja – np: 1.0; aby zainstalować najnowszą wersję biblioteki użyj symbolu *
Poniższe polecenie zainstaluje wymagane pakiety w katalogu /vendor:
1 |
php composer.phar install |
oraz utworzy plik composer.lock, w którym zostaną zapisane informacje o wersjach bibliotek. Przydatna właściwość. Wyobraź sobie sytuację, kiedy inna osoba sklonuje Twój projekt i zainstaluje składniki z composer.json bez tej blokady. Aplikacja może przestać działać lub sypać błędami, gdyż wersje plików mogą się od siebie różnić.
PRZYKŁAD
1. Przygotuj plik composer.json:
1 2 3 4 5 |
{ "require": { "twig/twig" : "^2.0" } } |
Pakiet Twig to system szablonów, który wykorzystamy do budowy prostej strony internetowej z wiadomością powitalną „Hello World!” 🙂
2. Wykonaj polecenie:
1 |
php composer.phar install |
W katalogu projektu pojawił się podkatalog /vendor z biblioteką Twig oraz plik ładujący klasy: autoload.php.
3. Utwórz plik index.php w katalogu głównym projektu i wklej do niego poniższą zawartość:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php // index.php require_once "vendor/autoload.php"; // dołączamy autoloadera $loader = new \Twig\Loader\FilesystemLoader('./templates'); $twig = new \Twig\Environment($loader, [ 'cache' => './cache', ]); echo $twig->render('base.html', ['message' => 'Hello World!']); |
Autoloader wczyta każdą bibliotekę zainstalowaną w katalogu /vendor, nie tylko Twiga 🙂
Aby wiedzieć, jak użyć Twiga na stronie skorzystałem z jego dokumentacji API 🙂
Jak widać, potrzebujemy jeszcze dwóch katalogów /templates – do przechowywania szablonów html, oraz cache – do tworzenia cache strony. Cache możesz na razie zakomentować, aby widzieć zmiany po odświeżeniu strony.
Do szablonu przekażemy wiadomość powitalną [’message’ => 'Hello World!’]. Klucz message będzie miał w szablonie postać: {{ message }}.
1 |
echo $twig->render('base.html', ['message' => 'Hello World!']); |
Oczywiście możesz przekazać więcej parametrów 🙂
4. Utwórz plik base.html (/templates/base.html):
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>{{ message }}</title> </head> <body> <h1>{{ message }}</h1> </body> </html> |
Wyświetl stronę w przeglądarce i zobacz efekt swojej pracy.
AKTUALIZACJA PAKIETÓW
Aby zaktualizować pakiety wykonaj polecenie:
1 |
php composer.phar update dostawca/pakiet |
Przykład:
1 |
php composer.phar update twig/twig |
USUWANIE PAKIETÓW
Aby usunąć wybrany pakiet możesz to zrobić manualnie. Wystarczy, że wytniesz odpowiednią linię w pliku composer.json a następnie wykonasz polecenie:
1 |
php composer.phar install |
Composer zaktualizuje zawartość Twojego projektu usuwając odpowiedni katalog z vendora.
Oczywiście jest jeszcze prostszy sposób 🙂
1 |
php composer.phar remove dostawca/pakiet |
Więcej informacji znajdziesz na oficjalnej stronie getcomposer.org