Prosper Otemuyiwa недавно написал статью о том, как создавать пакеты для Laravel 5 в своём блоге. Хотя его способ абсолютно правильный и может вам подходить, я предпочитаю немного иной способ создания пакетов.
Сначала я создаю новый репозиторий на GitHub. В этот репозиторий копирую содержимое репозитория скелета приложения PHP League’s Skeleton. Он даёт хорошую стартовую точку отправления.
С ним вы получаете:
очень красивый шаблон readme
историю изменений (changelog)
файл лицензии
composer.json
После замены всех тестовых значений в репозитории на свои корректные я заливаю репозиторий на Packagist. Заметьте, что на данный момент у пакета нулевая функциональность. Обычно следует воздержаться от добавления пакетов без функциональности на Packagist. Но, учитывая тот факт, что на данный момент есть только ветка master и нет версий под тегами, большинство разработчиков не будут использовать этот пакет. Один мудрый человек сказал: «Использование ветки dev-master в проекте — это сродни незащищённому сексу с интернетом».
Теперь, когда пакет доступен на Packagist, время установить свежую версию Laravel. Я предпочитаю это делать с помощью Laravel Installer:
laravel new package-name
После установки я использую метод Dimitrios Savvopoulos для установки пакета в Laravel. Он состоит в том, чтобы запуллить dev-master ветку пакета в проект с помощью composer.json. Пакет можно получить следующей командой:
composer update --prefer-source
Новый пакет будет установлен в свой собственный репозиторий в папке vendor. Таким образом можно коммитить и пушить код на GitHub прямо из директории vendor. Отлично! Теперь всё готово для начала разработки нового пакета.
Когда пакет начинает функционировать и проходит все тесты, я делаю тег версии 1.0.0 на GitHub. При последующей разработке я использую семантическое проставление версий для релизов.
Если у вас есть другой, лучший способ создания новых пакетов, вы можете написать автору. Источник ниже.