Пользовательский пакет Laravel не загружается - PullRequest
0 голосов
/ 20 октября 2018

У меня есть пакет по следующему пути: packages / mypackage / demo

, и мой поставщик услуг находится в:

packages/mypackage/demo/src/vis/MyserviceProvider.php

и я добавил в composer.json как:

"psr-4": {
      "Custom\\MyPackage\\": "packages/mypackage/demo/src/vis/",

        "App\\": "app/"
    }

Запустил composer update и запустил composer dump-autoload -o

и добавил поставщика услуг в app.php:

Custom\MyPackage\MyserviceProvider::class,

но я получаю следующую ошибку:

MyserviceProvider не найден

Может кто-нибудь помочь мне, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 20 октября 2018

Путь к пакету в вашей папке примерно такой: packages / mypackage / demo / src

В каждом приложении Laravel есть основной файл composer.json в корнекаждое новое приложение.Это ваш основной файл компоновщика приложения, и здесь мы определяем все зависимости нашего приложения.

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/",
        "Mypackage\\Demo\\": "packages/mypackage/demo/src"
    }
},

Затем нам нужен composer для запуска автозагрузчика и автозагрузки нашего пакета.Для этого мы запускаем следующую команду:

composer dump-autoload

Добавьте нашего поставщика услуг пакета.

Поставщик услуг является основной записью внутри нашего пакета.Здесь наш пакет загружается или загружается.В корне нашего приложения давайте создадим наш ServiceProvider с командой ремесленника из командной строки:

php artisan make:provider MyServiceProvider

Это создаст новый файл, расположенный в app / Providers / MyServiceProvider.php

Давайте переместим этот файл в нашу папку пакета так, чтобы он находился в packages/mypackage/demo/src/MyServiceProvider.php

ПРИМЕЧАНИЕ: Не забудьте изменить пространство имен , чтобы оно было вашим поставщиком \Имя_пакета в файле MyServiceProvider.php Пример:

<?php
namespace Mypackage\Demo;
use Illuminate\Support\ServiceProvider;
class MyServiceProvider extends ServiceProvider
{    }

Далее нам нужно добавить нашего нового поставщика услуг в наш config/app.php внутри массива providers[]:

'providers' => [

    /*
     * Laravel Framework Service Providers...
     */
    Illuminate\Auth\AuthServiceProvider::class,
    //.. Other providers
    Mypackage\Demo\MyServiceProvider.php::class,

],

Теперь наш поставщик услуг загружен, и наш пользовательский пакет готов к использованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...