W jaki sposób dodać własne klasy do composer?

Treść dodana: 09 grudnia 2015.

Composer jest menedżerem pakietów PHP. Umożliwia łatwe zarządzanie zależnościami oraz pobieranie plików z zewnętrznych źródeł. Jest też autoloaderem czyli zajmuje się wczytywaniem określonych plików. Przykładowe wywołanie może wyglądać następująco:

composer require zendframework/zend-stdlib

Komenda doda nową linię w pliku composer.json (w głównym folderze naszego projektu):

"require": {
    "zendframework/zend-stdlib": "^2.7"
}

Pisany przez nas kod może wymagać załączenia prywatnych klas – a te raczej nie chcemy udostępniać innym osobom do pobrania. W zależności od tego, jak dawno kod został utworzony, może opierać się o standard PSR-0, lub aktualnie obowiązujący, PSR-4. Jeżeli nasze pliki znajdowały by się w folderze /library należało by zedytować plik composer.json w następujący sposób:

"autoload": {
    "psr-0": {
        "Test_": "library/"
    },
    "psr-4": {
        "Wwwgo\\":"library/Wwwgo"
    }
},
"include-path": [
    "library/"
],
"require": {
 "zendframework/zend-stdlib": "^2.7"
}

To oczywiście przykład najprostszy z możliwych ale mam nadzieję daje podgląd sytuacji. Ścieżki powinny być dobrane wedle naszych własnych potrzeb. Często też umieszcza się pliki źródłowe w katalogach `src` a poza nimi dokumentację czy testy. Podana wyżej struktura będzie miała zastosowanie dla przykładowych plików:

|-library\
|-library\Test\Debug.php
|-library\Wwwgo\Database\Query.php
<?php
use Wwwgo\Database\Query;

$q = new Query;
$d = new Test_Debug;

Pamiętaj aby przed wgraniem plików na serwer produkcyjny wykonać polecenie:

composer dumpautoload -o

Wygeneruje ono mapę dostępnych plików dzięki czemu, w większości przypadków, klasy będą szybciej wczytywane.

Komentarze

Nie ma jeszcze żadnych komentarzy do wyświetlenia. Może chcesz zostać pierwszą osobą która podzieli się swoją opinią?

Dodaj komentarz

*
Nazwa zostanie wyświetlona wraz z komentarzem. Możesz też utworzyć nowe konto w serwisie, dzięki czemu uzyskasz dodatkową funkcjonalność.
*
Akceptowana jest ograniczona składnia Textile. Wszystkie tagi HTML zostaną usunięte.