Вспомогательный метод Laravel по умолчанию и фасад не работают с пользовательским пакетом - PullRequest
0 голосов
/ 02 ноября 2018

Я разрабатываю специальный пакет, в котором мне нужен доступ к данным конфигурации. Мне удалось извлечь данные из конфигурации через мои блейд-файлы, однако, когда я попытался вызвать их из любых созданных мной пользовательских классов, выдается ошибка:

Ошибка: вызов неопределенной функции Acme \ Package \ config ()

Что интересно, так это то, что когда я пытался использовать фасад Illuminate\Support\Facades\Config, он не может найти класс.

Можно ли как-нибудь получить данные из конфигурации (из пакета и / или приложения)?

<?php

namespace Acme\Package;

class MyClass {
    public function test() {
        config('app.name');
    }
}

ОБНОВЛЕНИЕ: работает при запуске в браузере (пакет установлен в проекте Laravel), но не работает при запуске теста пакета

ОБНОВЛЕНИЕ: Если это поможет, мой пакет можно найти здесь

Звоните на config() с здесь

И тестовый пример, который не проходит, можно найти здесь

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Вы должны попробовать это:

<?php

    namespace Acme\Package;
    use Config;

    class MyClass {
        public function test() {
            Config::get('app.name');

        }
    }

Обновленный ответ

Пожалуйста, добавьте ниже строки в config/app.php в aliases разделе

'Config' => Illuminate\Support\Facades\Config::class,

затем выполните команду ниже

php artisan config:cache
php artisan cache:clear
0 голосов
/ 02 ноября 2018
<?php

namespace Acme\Package;

class MyClass {
    public function test() {
        \Illuminate\Support\Facades\Config::get('app.name');
    }
}

Попробуйте вот так, чтобы использовать полное пространство имен для фасада конфигурации. Вы также можете сделать оператор use под своим пространством имен, чтобы добавить фасад, а затем использовать Config::get('app.name). Причина, по которой он не работает, заключается в том, что ваш пакет не может разрешить пространство имен этого фасада, так как он находится вне контейнера IoC

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