Piotr Rybałtowski

Programista PHP, Symfony

PHPProgramowanieZend Framework

Composer – zarządzanie zależnościami w aplikacji PHP

PHP doczekał się kolejnego elementu, który powoduje, że korzystanie z niego i budowanie profesjonalnych aplikacji jest przyjemniejsze. Mam na myśli Composer – system zarządzania zależnościami w aplikacji PHP. Ułatwia on instalowanie i zarządzanie wersjami bibliotek wykorzystywanych przy budowaniu oprogramowania. W językach takich jak Node.js czy Ruby podobne programy są już od jakiegoś czasu (odpowiednio npm i bundler). I wg autorów strony Composer jest wzorowany właśnie na tych dwóch managerach pakietów.

Do czego taki manager służy? Założmy, że tworzymy aplikację, która oparta jest o Zend Framework 2 i Doctrine 2, czyli do jej budowy potrzebujemy trzech modułów – samego frameworka ZF2 oraz dwóch dla Doctrine. Tradycyjnie każdy z nich trzeba pobrać ręcznie (ewentualnie dopisać do zależności repozytorium git lub svn jeśli korzystamy z kompatybilnego z nimi). Dzięki Composerowi wystarczy utworzyć plik konfiguracyjny o nazwie composer.json (w formacie JSON jak nazwa wskazuje) i umieścić go w katalogu głównym. Minimalny plik w naszym przykładzie wyglądałby następująco:

{
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "dev-master",
        "doctrine/DoctrineModule": "dev-master",
        "doctrine/DoctrineORMModule": "dev-master"
    }
}

Dodatkowo w powyższym przykładzie wprowadzona jest minimalna wymagana wersja PHP. Dla pozostałych modułów będzie pobierana najnowsza dostępna. Podane moduły są dostępne w repozytorium git (na github.com) dzięki czemu composer będzie pobierał najnowszą wersję biblioteki, gdy tylko nowa się pojawi. Oprócz git Composer obsługuje również repozytoria SVN i Mercurial.

Po skonfigurowaniu zależności pozostają dwa proste kroki do wykonania. Oba wykonujemy będąc w katalogu głównym naszej aplikacji. Najpierw pobieramy skrypt composer przez:

curl -s http://getcomposer.org/installer | php

Następnie uruchamiamy zainstalowany skrypt z poleceniem instalowania

php composer.phar install

I to wszystko! Wymagane biblioteki są zainstalowane w katalogu vendor a dodatkowo utworzona zosała mapa przestrzeni nazw, klasa automatycznego wczytywania klas oraz plik definiujący. Najnowsza wersja Zend Framework 2 potrafi korzystać z nich wszystkich.

Composer korzysta z repozytorium pakietów umieszczonego na stronie packagist.org. Można tam wyszukiwać dostępne pakiety lub dodawać własne. Przy dodawaniu należy pamiętać o spełnieniu wymagań względem nazewnictwa plików i klas z pakietu oraz nazwy samego pakietu.

Po kilku innych nowościach z PHP 5.4 moim zdaniem jest to kolejny bardzo dobry krok do profesjonalizacji tego języka i dzięki temu chętniej do niego wracam.

2 komentarze do “Composer – zarządzanie zależnościami w aplikacji PHP

  • Faktycznie dobra sprawa, ostatnio się tym zainteresowałem bawiąc się slim framework, a tak poza tym miałem praktycznie gotowy wpis w szkicach na ten temat 😉

  • @jwest No niestety, byłem pierwszy. Ale opublikuj swój, będzie ciekawiej na techblogu 🙂 Możesz też coś napisać o slimie, bo wygląda ciekawie. Na callbackach i przypomina mi nieco node.js i express w których pracuję. Chętnie poczytam 🙂

Skomentuj lub zadaj pytanie

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.