2014-12-01

Lokalne repozytorium Composera

Composer szybko stał się standardem do zarządzania pakietami oraz ich zależnościami dla aplikacji PHP. Dzisiaj jest to podstawowe i niemal niezbędne narzędzie do pracy i rozwoju aplikacji. W tym wpisie chcę pokazać, jak w prosty i łatwy sposób utworzyć własny pakiet - repozytorium, by następnie pobrać go za pomocą Composera. 
Oczywiście, można użyć Satis lub Toran Proxy, aczkolwiek na własne potrzeby np. testów, wystarczy prostsze rozwiązanie, które opisuje w dalszej części posta.

Repozytorium Composera możemy utworzyć we własnej sieci np. na tym samym komputerze, na którym rozwijamy główny projekt, a następnie pobierać go przez Composera, bez publikowania go na GitHUB.

Czasem może zdarzyć się taka sytuacja, kiedy nie chcemy publikować naszego pakietu i umieszczać go publicznie na GitHUB. Może to być sytuacja w której, dopiero zaczynamy pracować nad własnym pakietem, nasz pakiet może być specyficzny tylko dla naszej aplikacji i nie nadaje się dla innych aplikacji, jak również może to być rozwiązanie zamknięte rozwijane na potrzeby projektu komercyjnego.

W tym wpisie nie będę opisywał podstaw Composera. Można z nimi się zapoznać w oficjalnej dokumentacji.


Zaczynamy!

Na początku utworzymy nowy projekt. Jego struktura będzie wyglądała następująco:


main-project-directory
|-src
| \-module
|   \-Start.php
|-examples
\-test


Utwórzmy powyższą strukturę katalogów, a następnie zainicjujmy repozytorium git:


cd main-project-directory
git init
git add .
git commit -m "Pierwszy commit"


Już mamy utworzony projekt. Teraz możemy przystąpić do konfiguracji Composera w naszym projekcie. W tym celu tworzymy plik composer.json w głównym katalogu projektu, a następnie definiujemy konfigurację:


{
 "name": "my-projects/my-module",
 "description": "Description of my project",
 "type": "library",
 "license": "BSD",
 "keywords": [
   “keywords"
 ],
 "authors": [
   {
     "name": "Name Surname",
     "email": "email@email.com"
   }
 ],
 "version": "dev-master",
 "require": {
 },
 "autoload": {
   "psr-0": {
     "MyModule\\": "src/"
   }
 }
}


Z kolei w pliku composer.json projektu, do którego chcemy zaciągnąć nasz wcześniej utworzony moduł, musimy dodać wpis z repozytorium, z którego należy pobrać moduł:


{
   "name": "my_projects/main_project",
   "repositories": [{
       "type": "vcs",
        "url": "/path_to_module/my_module"
       }
   ],
   "require": {
       "my-projects/my-module" : "dev-master"
   }
}


Wartość dla “url” w sekcji "repositories" może być ścieżką na komputerze lokalnym albo adresem URL do którego jest dostęp w sieci.

Teraz wystarczy wydać polecenie > composer update, by pobrać do naszego miejsca docelowego utworzone wcześniej repozytorium.
Podczas konfiguracji composer.json w projekcie, do którego będzie zaciągane repozytorium, należy zwrócić szczególną uwagę na poprawność ścieżek - wielkość znaków ma znaczenie.

Brak komentarzy:

Prześlij komentarz