Вроде всё верно, раз биндите на класс, а не интерфейс, можно даже не заморачиваться $this->app->singleton, в методе котроллера будет нужный инджект. В других местах пользуйтесь App::make и App::call методами
К сожалению, не работает. Call to a member function search() on null.
Я правильно понимаю, что если не делать бинд, то инжект доступен только в конструкторе?
То есть как вариант в конструкторе присваивать свойствам нужные объекты.
protected $elastic;
public function __construct(\App\Elastic\Elastic $elastic)
{
$this->elastic = $elastic;
}
И такой код у меня работает.
А если биндить в AppServiceProvider, то класс \App\Elastic\Elastic можно инжектить в любой методе любого контроллера?