3
已經詢問過這個主題的多個問題,但我仍然有這個問題,我不知道問題是什麼。Laravel 5的目標是不可實例化的
我想實現我可以實例化一個接口而不是實現。
我使用Laravel 5,這是代碼/結構:
在應用程序,我已經創建了一個合同文件夾。在此文件夾我有Messenger.php:
Messenger.php
<?php namespace App\Contracts;
interface Messenger {
public function goodmorning($name);
}
在應用程序/服務我有 DailyMessenger.php
<?php namespace App\Services;
use App\Contracts\Messenger;
class DailyMessenger implements Messenger {
public function goodmorning($name)
{
return 'Goodmorning '. $name;
}
}
現在我想實例化我的接口控制器:
現在public function __construct(Messenger $messenger)
{
$this->messenger = $messenger;
}
,如果我按照Laravel網站上的文檔,我應該只在服務容器,這是我在現有的AppServiceProvider.php
public function register()
{
$this->app->bind(
'Illuminate\Contracts\Auth\Registrar',
'App\Services\Registrar'
);
$this->app->bind('App\Contacts\Messenger', 'App\Services\DailyMessenger');
}
辦?如果我訪問相應的登記本映射到控制器的路線我得到的錯誤:
BindingResolutionException in Container.php line 785:
Target [App\Contracts\Messenger] is not instantiable.
我想我已經嚴格遵循了Laravel文檔,但我缺少什麼?在此先感謝:-)