Рубрики
Uncategorized

Как разрабатывать, тестировать локально и публиковать пакеты расширений Laravel?

Автор оригинала: 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. Написание Расширенного Кода Логики Пакета

Далее давайте создадим Поставщика услуг администратора. phpAdmin.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/”