У меня есть служебный файл, который обрабатывает данные и сохраняет их в приватных полях.Многие запросы выполняются, поэтому я хотел бы создать экземпляр файла службы только один раз и обращаться к данным из полей, когда это необходимо, на более поздних этапах жизненного цикла запроса.
Я попытался зарегистрировать файл службы в службе 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()
, однако я не думаю, что это имело бы значение.
Есть что-то, что я пропустил или неправильно понял?
Любая помощь или указатели оценены!