Я пытаюсь использовать отложенный сервис-провайдер для регистрации интерфейсов и репозиториев только тогда, когда они необходимы, так как регистрируют их каждый раз, когда загрузка приложения создает большую нагрузку на мой сервер.
Я использую этот пакет для laravel модульного подхода.
Если я загружаю все такие зависимости (у меня есть около 6 интерфейсов и репозиториев для этого модуля c):
$this->app->bind(AppointmentsRepositoryInterface::class, AppointmentsRepository::class);
Все работает, но, учитывая, что есть другие модули время загрузки увеличилось с 200 до 1600 мс. Я выполнил всю индексацию в моей базе данных, все сценарии были минимизированы и оптимизированы, а также прошел laravel советы по оптимизации.
При использовании отложенного метода
class HematologyServiceProvider extends ServiceProvider implements DeferrableProvider {
//... a lot more code
public function register() {
$this->app->bind(AppointmentsRepositoryInterface::class, AppointmentsRepository::class);
}
public function provides() {
return [
AppointmentsRepositoryInterface::class,
];
}
//... a lot more code
}
После выполнения поэтому я получаю [] is not insatiable ...
ошибку. Как я могу использовать этот интерфейс, только когда, например, контроллер или это пространство имен запущены?