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. Під час подальшої розробки я використовую семантичне проставлення версій для релізів.
Якщо у вас є інший, кращий спосіб створення нових пакетів, ви можете написати автору. Джерело нижче.