Я делаю первые шаги в Laravel 5, в частности, с разработкой пакета. Моя цель с этим пакетом - всегда загружаться в каждом отдельном запросе.Как загрузить поставщика услуг в laravel 5
Итак, я начал создавать HelloWorldServiceProvider службы:
<?php
namespace FacebookKiller\Modules\HelloWorld;
use Illuminate\Support\ServiceProvider;
class HelloWorldServiceProvider extends ServiceProvider{
protected $defer = false;
public function boot(){
dd('hello world at boot()')
}
public function register()
{
dd('hello world at register()')
}
}
На самом деле, этот файл находится этот путь от корня:
/Larave/app/Modules/HelloWorld/HelloWorldServiceProvider.php
Затем я отредактировать файл config/app.php
, чтобы добавить услугу поставщик
'Illuminate\Translation\TranslationServiceProvider',
'Illuminate\Validation\ValidationServiceProvider',
// my module
'FacebookKiller\Modules\HelloWorld\HelloWorldServiceProvider'
И, наконец, для проверки, еслиназывается, я редактировал файл routes.php
как:
Route::get('test', function(){
return "Making a test request";
});
Результат отрицательный. Поставщик услуг не загружен. Согласно документации:
Отсрочка загрузки такому провайдера улучшит производительность вашего приложения, так как он не загружен из файловой системы на каждый запрос. Перенести загрузку поставщика, установите свойство Отнести к истинному
Таким образом, я делаю установку protected $defer
к false
наоборот. Но функция dd()
не запускается. Важно использовать тип поставщика услуг, потому что таким образом я могу загрузить с него lang, views и config файлы.
файл открытого хранилища/рамки/services.json, вы видели свой класс провайдера в этом файле? Если нет, удалите этот файл, laravel будет генерировать его снова. –
@MartirosAghajanyan, вы это исправите! Спасибо! Пожалуйста, создайте ответ, чтобы принять его. – manix