Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Сделал провайдер, добавил его в app.php в provider
<?php
namespace App\Providers;
use App\Orc;
use Illuminate\Support\ServiceProvider;
class RiakServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
$this->app->bind('App\Orc', function ($app) {
$n = new Orc(10000);
$n->lvl = 999;
return $n;
});
}
}
Класс из провайдера
<?php
namespace App;
class Orc
{
public $lvl = 6;
function __construct($n=10){
$this->lvl = $n;
}
public function doSomethingUseful(){
}
}
Контроллер
Route::get('mmmm', function (\App\Orc $orc) {
dd($orc);
});
И оно не работает, то есть сервис провайдер не перехватывает создание экземпляра.
Также пробывал наследовать класс от интерфейса, как тут
https://code.tutsplus.com/ru/tutorials/ … -cms-28966
CustomServiceInterface
Но получал ошибку, хотя пространства имён и физ расположение файлов написал верно.
Target [App\OrcInt] is not instantiable.
п.с я думал, что сервис провайдер нужен именно для того, что бы быть препроцессором перед созданием экземпляров классов(и переопределять классы), но, похоже, я совсем не понял в чём суть всей этой абстракции. Так ли часто вообще используются сервис-провайдеры в реальных проектах?
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Просто надо было почистить кеш конфигов php artisan config:cache
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Страницы 1