Глобальные сервисные объекты в Ларавеле - PullRequest
0 голосов
/ 05 июля 2019

У меня есть служебный файл, который обрабатывает данные и сохраняет их в приватных полях.Многие запросы выполняются, поэтому я хотел бы создать экземпляр файла службы только один раз и обращаться к данным из полей, когда это необходимо, на более поздних этапах жизненного цикла запроса.

Я попытался зарегистрировать файл службы в службе Laravel.провайдер использует следующий фрагмент, но он, похоже, не работает так, как я ожидал.

$this->app->singleton('App\Services\UserService', function ($app) {
    return new App\Services\UserService();
});

В моем случае первый раз, когда я вызвал методы обслуживания, был в моем классе промежуточного программного обеспечения.Определенные методы, которые я вызвал, должны были установить множество закрытых полей, которые я мог бы использовать позже.Сервисный файл был загружен с использованием метода «инъекции».

public function __construct(UserService $user_service) {
    $this->user_service = $user_service;
}

Однако, как только запрос наконец перешел к методу контроллера, поля в сервисном объекте были обнулены, и мне пришлось вызвать «тяжелый»"методы еще раз.

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

Есть что-то, что я пропустил или неправильно понял?

Любая помощь или указатели оценены!

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