Автор оригинала: David Wong.
Сценарии использования
При обращении к сторонним пакетам возникает необходимость изменить сторонние пакеты и поместить код на свой собственный склад; и другие проекты также должны ссылаться на пользовательские сторонние пакеты; даже они сами будут выпускать измененные сторонние пакеты;
Прочитав эту статью, вы можете получить:
- Основное использование подмодуля Git
- Локальная загрузка пакетов сторонних производителей
- Получение пакетов расширений с адресов Пользовательских складов
- Быстрое создание пакетов сторонних производителей
Эта статья представляет собой отчет о шагах, которые я предпринял, когда хотел сам создать базовый пакет сторонних разработчиков.
1. Использование подмодуля git для использования сторонних пакетов в существующих проектах
Пакеты, обычно устанавливаемые с composer , все находятся в поставщике Под каталогом и адресом склада все указывает на склад стороннего автора пакета, при изменении стороннего пакета один не может быть включен в библиотеку управления GIT, другой отправляется. запросы на вытягивание Нужно дождаться обновления авторского отзыва, не может быть принято
1) Проект форка
2) Загрузите проект fork на локальный сайт
> mkdir packages > git submodule add https://github.com/mpandar/laravel-packager.git packages/mpandar/laravel-packager
3) Содержимое пакета затем можно отредактировать, а каталоги пакетов/pandora/laravel-пакетов используют команды git для отправки файлов
2, настройка содержимого composer.json, включение проектов для использования пользовательского содержимого пакета
Механизм автоматического обнаружения пакетов композитора фактически используется psr-4 (Китайский)
// autoload - PSR - 4 is the project home directory SRC
// autoload - files is mainly about loading helper functions
// autoload-dev-psr-4 is mainly test
"autoload": {
"psr-4": {
"JeroenG\Packager\": "packages/mpandar/laravel-packager/src"
},
"files": [
"packages/mpandar/wechat/src/Kernel/Helpers.php"
]
},
"autoload-dev": {
"psr-4": {
"JeroenG\Packager\Tests\": "packages/mpandar/laravel-packager/tests"
}
},Запустите после добавления composer dumpautoload В противном случае добавьте следующее Поставщик услуг Может сообщить об ошибках, не может найти соответствующий Поставщик услуг
3. Добавление Поставщика Услуг Пакетов
Из-за laravel пакет:откройте для себя Читается поставщик/композитор/установлен.json Пакеты, установленные в этом файле, и наши пакеты добавляются вручную, поэтому они не могут быть добавлены автоматически. Поставщик услуг Вручную. app.php Добавить в
'providers' => [
JeroenG\Packager\PackagerServiceProvider::class,
],
'aliases' => [
'CreditsShop' => Mpandar\CreditsShop\Facades\CreditsShop::class,
],принять список исполнителей php Вы можете видеть, что команды в этом пакете были добавлены
4. Используйте пользовательские пакеты для других проектов
Йерун\Упаковщик Он используется для быстрого создания пакета расширений на основе laravel. В процессе его использования обнаруживается небольшая проблема, такая как php artisan packager:новая корзина pandora laravel Идеальная структура каталогов должна быть
packages
|-mpandar
|-laravel-cart
|-src
|-LaravelCartProvider.php
|-LaravelCart.php
|-Facades
|-LaravelCart.phpНо поставщик, которого он фактически создал, был назван Поставщик laravel-cart Если используется php artisan packager:новая корзина mpandar Laravel Имя каталога снова было бы неправильным, поэтому я исправил проблему (или, может быть, я не буду использовать…).
// dev-master represents the master branch
"repositories": [
{
"type": "vcs",
"url": "https://github.com/mpandar/laravel-packager"
}
],
"require": {
"jeroen-g/laravel-packager": "dev-master"
},
// composer update5. Разработка пакетов расширений для Laravel
использовать jeroen-g/laravel-упаковщик Легко создать проект инфраструктуры пакета расширений
> php artisan packager:new mpandar credits-shop 0/6 [>---------------------------] 0% Creating package mpandar\credits-shop... 1/6 [====>-----------------------] 16% Creating packages directory... 2/6 [=========>------------------] 33% Creating vendor... 3/6 [==============>-------------] 50% Downloading skeleton... 4/6 [==================>---------] 66% Replacing skeleton placeholders... 5/6 [=======================>----] 83% Dumping autoloads and discovering package... Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover 6/6 [============================] 100% Package created successfully!
Структура каталогов, которую он создает:
Конфигурация автоматически добавляется в composer. JSON и приложение. php. Хорошо, тогда мы можем разработать пакет расширений!
Оригинал: “https://developpaper.com/workflow-development-based-on-compposers-lavel-extension-package/”