我構建了Lumen應用程序,並試圖用一種非常實用的風格構建它,並帶有小的可重用和可交換包。綁定類型暗示接口實現
所以我有這樣
use Psr\Http\Message\ServerRequestInterface;
interface ResourceControllerContract
{
public function store(ServerRequestInterface $request);
}
一個抽象的資源控制器的接口。在我的用戶資源控制器實現
use GuzzleHttp\Psr7\ServerRequest;
final class UserController extends ResourceController
{
public function store(ServerRequest $request)
{
$request = $request->getParsedBody();
}
}
因爲狂飲請求已經實現了PSR \ HTTP \信息\ RequestInterface,我推測這可以通過,但我的應用程序不斷拋出一個異常,說屬性傳遞給store()應該聲明爲描述在ResourceControllerContract
在register方法我的服務提供商,我創建像這樣
$this->app->bind(
'Psr\Http\Message\ServerRequestInterface',
'GuzzleHttp\Psr7\ServerRequest'
);
一個具有約束力,但它仍然拋出了同樣的錯誤,能有人建議是怎麼回事錯在這裏?這是我第一次以這種方式構建應用程序所以請原諒我,如果我錯過了一個簡單的監督
因爲Laravel不知道它是否存在,換句話說,依賴注入容器不知道如何注入該類。 – GiamPy