Laravel дополнение пакета / поставщика услуг - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь использовать https://github.com/sebdesign/laravel-state-machine в моем laravel приложении. Но пакет установлен неправильно. Мой контроллер не распознает это. Сначала я добавил следующее к своему composer. json

"repositories": [
  {
     "type": "vcs",
     "url": "https://github.com/sebdesign/state-machine"
  }
]

Затем я запускаю

composer require sebdesign/laravel-state-machine:1.0

Затем я добавил следующее в моей конфигурации / приложении. php

'providers' => [
    Sebdesign\SM\ServiceProvider::class,
],

'aliases' => [
    'StateMachine' => Sebdesign\SM\Facade::class,
],

После этого я публикую sh файл конфигурации в config / state-machine. php, используя

php artisan vendor:publish --provider="Sebdesign\SM\ServiceProvider"

И это все. Сейчас я пытаюсь использовать его в своих контроллерах как:

// Using the facade
$stateMachine = StateMachine::get($article, 'simple');

Но StateMachine не распознается. Я получаю

Undefined type 'App\Api\V1\Controllers\Resource\StateMachine'

Я что-то здесь упускаю? Должен ли я добавить использовать оператор для чего-то в начале моего контроллера?

Редактировать: Laravel 5.1 Спасибо

1 Ответ

0 голосов
/ 20 апреля 2020

Вам не нужно использовать следующие строки, если вы используете последнюю версию и средство автоматического обнаружения.

Начиная с версии 5.5, Laravel использует автоматическое обнаружение пакета, поэтому вы не будете Нужно вручную добавить ServiceProvider и фасад. Если вы не используете автообнаружение или используете более старую версию, добавьте поставщика услуг и фасад в config / app. php.

<?php

'providers' => [
    Sebdesign\SM\ServiceProvider::class,
],

'aliases' => [
    'StateMachine' => Sebdesign\SM\Facade::class,
],

После composer требуется вам нужно напрямую запустить эту команду.

php artisan vendor:publish --provider="Sebdesign\SM\ServiceProvider"

Вам необходимо установить совместимую версию пакета в соответствии с вашей laravel версией.

composer require sebdesign/laravel-state-machine:^1.0

Затем вам нужно использовать ее как ниже:

use \SM\Factory\Factory as SMFactory;
...