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.
Dodaj komentarz
- sieć
- http
- apache
- ssl
- php
- composer
- javascript
- jquery
- ajax
- html
- pdo
- sql server
- spl
- css
- sql
- mysql
- postresql
- mongodb
- psr
- programowanie
- regex
Wyszukaj interesujące Cię słowa kluczowe pośród istniejących porad.
Komentarze
Nie ma jeszcze żadnych komentarzy do wyświetlenia. Może chcesz zostać pierwszą osobą która podzieli się swoją opinią?