Prosper Otemuyiwa niedawno opublikował artykuł o tym, jak tworzyć pakiety dla Laravel 5 na swoim blogu. Chociaż jego sposób jest w pełni poprawny i może ci odpowiadać, ja wolę nieco inny sposób tworzenia pakietów.
Na początku tworzę nowe repozytorium na GitHub. Następnie kopiuję do niego zawartość repozytorium szkieletu aplikacji PHP League’s Skeleton. Daje to dobry punkt startowy.
Dzięki temu masz:
bardzo ładny szablon readme
historię zmian (changelog)
plik licencji
composer.json
Po zastąpieniu wszystkich przykładowych wartości w repozytorium swoimi poprawnymi danymi wgrywam repozytorium na Packagist. Zwróć uwagę, że na ten moment pakiet nie ma żadnej funkcjonalności. Zwykle należy powstrzymać się od dodawania pakietów bez funkcjonalności na Packagist. Ale biorąc pod uwagę fakt, że obecnie istnieje tylko gałąź master i nie ma wersji oznaczonych tagami, większość deweloperów nie będzie używać tego pakietu. Pewien mądry człowiek powiedział: „Używanie gałęzi dev-master w projekcie jest jak niezabezpieczony seks z internetem”.
Teraz, gdy pakiet jest dostępny na Packagist, czas zainstalować świeżą wersję Laravel. Wolę robić to za pomocą Laravel Installer:
laravel new package-name
Po instalacji używam metody Dimitriosa Savvopoulos do zainstalowania pakietu w Laravel. Polega to na tym, aby przepiąć gałąź dev-master pakietu do projektu za pomocą composer.json. Pakiet można pobrać następującą komendą:
composer update --prefer-source
Nowy pakiet zostanie zainstalowany w swoim własnym repozytorium w katalogu vendor. Dzięki temu można committować i pushować kod na GitHub bezpośrednio z poziomu katalogu vendor. Świetnie! Wszystko gotowe, aby rozpocząć tworzenie nowego pakietu.
Gdy pakiet zaczyna działać i przechodzi wszystkie testy, robię tag wersji 1.0.0 na GitHub. Przy dalszym rozwoju stosuję semantyczne wersjonowanie do release’ów.
Jeśli masz inny, lepszy sposób tworzenia nowych pakietów, możesz napisać do autora. Źródło poniżej.