На первый взгляд, это может показаться излишним, так как мы определили providers
в config/app.php
к автозагрузку любой ServiceProvider
, но оказывается, что есть сценарий, где они не будут автоматически загружаются:Laravel 4: загрузка Service Provider во время выполнения
Когда мы запускаем работу из Laravel Queue
- казалось бы, мой ServiceProvider
в config игнорируется полностью, поэтому DI не удалось с target ... is not instantiable
.
Зарегистрируйте поставщиков услуг во время работы в работе. например
App::register('MyServiceProvider');
Есть ли причина, по которой Laravel не выполнил автозагрузку моего ServiceProvider в таком случае?
PS: Я открыл вопрос on github, так как я не являюсь, если это по дизайну.
Я не встречало этого, и это может быть ошибкой, но только, чтобы поставить галочку очевидной ловушки - вы определение поставщиков услуг в вашем маршруте конфигурации или конфигурацию для конкретных условий - Я сгорел пару раз, задав окружения по URL-адресу (который явно не взят из командной строки), поэтому, если ваша конфигурация приложения находится в заданной URL-адресе, которая объяснит это. – WebweaverD
@WebweaverD - О, человек, ты прав, хотя я и понял, что это может быть проблемой, я недостаточно пристально смотрю. Любые советы по определению среды, которая не зависит от URL-адреса? – bitinn
Я отправил ответ с дополнительной информацией - дайте мне знать, как вы размещаете/запускаете свой dev-сайт, если у вас все еще есть проблемы – WebweaverD