绑定给定Interface或Abstract类的实现时,e。克
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
laravel如何确定给定的实现 传递的接口/抽象类的实现之一
假设我有以下接口
IVehicle.php
namespace App;
interface IVehicle {
public function getNumberOfWheels();
}
IBicycle.php
namespace App;
interface IBicycle extends IVehicle {
}
I4Wheeler.php
namespace App;
interface I4Wheeler extends IVehicle {
}
实现:
Bike.php
namespace App;
class Bike implements IBicycle{
public function getNumberOfWheels(){
return 2;
}
}
Car.php
namespace App;
class Car implements I4Wheeler{
public function getNumberOfWheels(){
return 4;
}
}
返回绑定方法:
$app->bind(
App\IBicycle::class,
App\Car::class
);
给出上述绑定我的问题是laravel如何验证或不验证Car是否是App\IBicycle
的实现
界面?如果没有执行验证,那么在更一般意义上传递inteface / abstract类有什么用?
答案 0 :(得分:0)
如果我理解你的问题,我认为你正在寻找Laravel Service Providers。您可以将实现绑定到接口。 IoC将查找这些绑定(在您的ServiceProviders中)以确定它应该使用哪个实现。