Как опубликовать поставщика услуг в приложении в laravel 11

Я хочу добавить поставщика услуг в laravel 11, но я не уверен, как добавить его с помощью laravel 11. Как и в предыдущей версии laravel, он добавляется в файл config/app.php, но в laravel 11 его необходимо добавить в packageServiceProvider в папке поставщиков. Ниже мой код, скажите, пожалуйста, если я где-то ошибаюсь..

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class PaytmWalletServiceProvider extends ServiceProvider
{

    /**
     * All of the container bindings that should be registered.
     *
     * @var array
     */
    public $bindings = [
        ServerProvider::class => Anand\LaravelPaytmWallet\PaytmWalletServiceProvider::class,
    ];

    /**
     * Register services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap services.
     */
    public function boot(): void
    {
        //
    }
}

Сначала попробуйте импортировать свой ServerProvider, а затем убедитесь, что вы указали правильный путь к PaytmWalletServiceProvider.

Mit Kathrotia 01.04.2024 11:20

Да, я импортировал класс PaytmWalletServiceProvider в файл поставщиков.

Isha 01.04.2024 11:23

Возникают ли у вас какие-либо ошибки, связанные с привязкой? например BindingResolutionException?

Mit Kathrotia 01.04.2024 11:24

Поставщики услуг могут и могут быть размещены где угодно. Теперь они зарегистрированы в файле boostrap/providers.php вместо config/app.php, хотя старый стиль все равно должен работать.

apokryfos 01.04.2024 12:08

@Mit Kathrotia, я не получил никакой ошибки, но как мне узнать, что она зарегистрирована и успешно опубликована.

Isha 01.04.2024 12:33

@apokryfos, я уже зарегистрировал этот класс в файле boostrap/providers.php и упоминал об этом ранее.

Isha 01.04.2024 12:35

Я не уверен, что понимаю вас здесь. Вы упоминаете такие вещи, как «опубликовано», подразумевая, что это предназначено для разработки пакетов, но вы также используете config/app.php или bootstrap/providers.php, которые не предназначены для использования поставщиками услуг, исходящими из сторонних пакетов. Каков ваш вариант использования здесь?

apokryfos 01.04.2024 12:49

Моя цель регистрации и публикации класса поставщика — использовать сторонний пакет в моем приложении.

Isha 01.04.2024 14:23
Anand\LaravelPaytmWallet, упомянутый в вашем коде (я предполагаю, что вы имеете в виду именно его), поддерживает обнаружение пакетов Laravel, поэтому поставщик услуг и псевдонимы должны автоматически регистрироваться Laravel. Вам не придется регистрировать его самостоятельно. Фактически, большинство пакетов, написанных для Laravel, написаны таким образом, чтобы это поддерживать.
apokryfos 01.04.2024 15:25

Итак, следует ли мне удалить провайдера PaytmWalletServiceProvider class из папки и файла провайдера?

Isha 01.04.2024 15:30
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
10
4 657
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В предыдущей версии Laravel провайдеры регистрировались в файле config/app.php. Но в Laravel 11.x большинство конфигураций перенесены в каталог /bootstrap.

В Laravel 11.x и более поздних версиях файл bootstrap/providers.php возвращает массив, содержащий всех провайдеров, которые будут зарегистрированы в вашем приложении.

<?php

return [
    App\Providers\AppServiceProvider::class,
    ...AllYourProvders
];

Другие вопросы по теме