У меня есть интерфейс, который я хотел бы привязать к конкретному классу. Дело в том, что конкретный класс требует некоторых элементов конфигурации при создании экземпляра. Вот что я сделал:Связывание интерфейса с построенным конкретным классом у поставщика услуг Laravel5
...
class FileMakerServiceProvider extends ServiceProvider
{
public function boot()
{
//
}
public function register()
{
$this->app->bind('FileMakerInterface', function ($app){
$username = env('FM_USERNAME');
$password = env('FM_PASSWORD');
$host = env('FM_HOST');
$database = env('FM_DATABASE');
return new SSCSimpleFm(compact('username', 'password', 'host', 'database'));
});
}
}
Я захватывая элементы конфигурации мне нужно, и переходя затем в недавно построенный конкретный класс.
Проблема заключается в том, когда я пытаюсь инъекционным интерфейс в мой контроллер Дев, чтобы проверить это:
...
use App\Services\FileMakerInterface;
class DevController extends Controller
{
public function testFmConnect(FileMakerInterface $fm){
return $fm;
}
}
Я получаю ошибку, что интерфейс не является инстанциируемым:
И Я определенно включил моего поставщика услуг в config/app.php
:
/*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
App\Providers\FileMakerServiceProvider::class
Я знаю, что может связать классы в моем поставщике услуг, так как:
public function register()
{
$this->app->bind('FileMakerInterface', 'SSCSimpleFm');
}
, но если бы я сделать это таким образом, я не могу вводить учетные данные.
Что мне здесь не хватает?
Так что это было связано с моим конкретным классом (спасибо), но теперь я столкнулся с ошибкой 'UnexpectedValueException в строке Response.php 403: . Содержимое ответа должно быть строкой или объектом, реализующим __toString(), «объект» задан. «Это происходит после создания конкретного объекта. Любые быстрые идеи, или я должен представить другой вопрос о стеке для него? –
@ChrisSchmitz Разные вопросы, так что разные вопросы :) –
[Уже сделано] (http://stackoverflow.com/questions/31862339/error-the-response-content-must-be-a-string-or-object-implementing- нанизывать) :) –