Автор оригинала: David Wong.
Существует множество статей о том, как разрабатывать пакеты расширений Laravel. Но большинство статей слишком односторонние и неполные, и когда я на самом деле разрабатываю пакет расширений, я все еще сталкиваюсь со многими проблемами. Я записываю свой собственный опыт разработки, а также возникающие проблемы и делюсь ими с вами.
Разработка расширенного пакета
1. Создайте новый проект и инициализируйте конфигурацию пакета расширения
Сначала создайте новый проект Laravel:
создание композитора-проект laravel/laravel laradmin -vvv
Далее в этом проекте создайте каталог пакеты/{your_name}/{your_package_name}
пакеты mkdir -p/angkee/laradmin
Введите каталог расширенного пакета и инициализируйте конфигурацию composer
пакеты компакт-дисков/angkee/laradmin композитор init
После выполнения создайте его в рамках проекта composer.json Документ:
{
"name": "angkee/laradmin",
"description": "Laradmin is a laravel package for can be generated fast backend management panel",
"license": "MIT",
"authors": [
{
"name": "angkee",
"email": "[email protected]"
}
],
"require": {}
}2. Создание базовых каталогов и файлов для пакетов расширений
В общем случае мы создаем следующие файлы и каталоги:
angkee/laradmin - src# stores all the logic code of the extension package -tests_Stores test cases ├── README.md ├── composer.json └── LICENSE
3. Измените конфигурацию композитора пакета расширений
Затем измените пакет расширения composer.json Файл, настройте его composer Конфигурация автоматической загрузки и расширенные пространства имен пакетов.
{
...,
"autoload": {
"psr-4": {
"Angkee\Laradmin\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Angkee\Laradmin\Tests\": "tests/"
}
},
...
}4. Написание Расширенного Кода Логики Пакета
Далее давайте создадим Поставщика услуг администратора. php 、 Admin.php Документы.
app->singleton('admin', function () {
return new Admin;
});
}
}На этом этапе разрабатывается пакет расширения, а затем мы начинаем устанавливать и тестировать локально.
Локальное тестирование расширенного пакета
удержание Поставщик услуг администратора Cong/app.php добавлено в проект провайдеры Массив
'providers' => [
...,
Angkee\Admin\AdminServiceProvider::class,
],Измените файл composer.json в проекте
{
"require": {
...,
"angkee/laradmin": "dev-master"
},
...,
"autoload": {
...,
"psr-4": {
...,
"Angkee\Admin\": "packages/laradmin/src/"
}
},
...
}Выполните команду:
дамп композитора-обновление композитора с автоматической загрузкой
Наконец, пересмотрите его routes/web.php Документ:
Route::get('/', function () {
app('admin')->printRunning();
});В этот момент мы открываем браузер для доступа к проекту и показываем запущенный Поздравляем вас с успехом!
Публикация расширенного пакета
Когда пакет расширения будет разработан и протестирован, он может быть передан Упаковщику .
1. Отправьте код на GitHub
Во-первых, вам нужно отправить код пакета расширения на GitHub и записать адрес библиотеки версий GitHub. Внимание HTTPS 。
2. Опубликуйте пакеты расширений для упаковщика
Затем посетите веб-сайт упаковщика, войдите в систему, нажмите кнопку Отправить в правом верхнем углу и войдите в Мастер публикации:
На этом этапе заполните адрес библиотеки версий GitHub в URL репозитория В поле ввода, а затем нажмите кнопку Отправить отправить, все идет гладко, вы можете видеть, что релиз прошел успешно.
3. Настройка синхронизации кода
Как только в Packagist Пакеты публикуются, более поздние версии обновляются и код синхронизируется. Существует механизм, гарантирующий, что служба уведомлений о событиях в GitHub запускает событие при отправке кода и синхронизирует код с другими средами.
Добавьте службы, выберите Пакет в списке служб и заполните информацию о конфигурации двух пакетов:
Имя пользователя: Обратите внимание на имя пользователя в маркере упаковщика: Домен токена связи: Нет необходимости заполнять
Для получения токена необходимо перейти в личные настройки упаковщика.
После заполнения и отправки не забудьте протестировать один раз и завершить первую синхронизацию. Успех подскажет информацию.
Итак, тестовая полезная нагрузка уже в пути.
Возвращаясь к пакету, обновите, не должно быть запроса на автоматическое обновление, указывающего, что механизм синхронизации вступил в силу, и тогда каждое изменение GitHub будет автоматически уведомляться и синхронизироваться.
4. Настройка Информации о версии
Версия по умолчанию – dev-master Номер версии пакета Composer синхронизируется с его тегом.
git tag 1.0.0 git push –тег
Пакеты расширений только что выпущены, установка в это время может не обнаружить ошибку установочного пакета, нужно немного подождать синхронизации сервера, как правило, более 3-5 минут, если все нормально, вы увидите советы по версии, успешная установка!
Ссылка
- Руководство по разработке плагина расширения Laravel
- Все для меня, я для всех! Опубликуйте свой собственный пакет Composer в сообществе
- Локальное развитие пакета Composer & Laravel
Оригинал: “https://developpaper.com/how-to-develop-test-locally-and-publish-laravel-extension-packages/”