我正在尝试使用Laravel Tinker创建一个具有构造函数作为接口的新对象。 MyClass.php
class MyClass{
public function __construct(ApiInterface $APIloader)
{
$this->APIloader = $APIloader;
}
}
ApiInterface.php
interface ApiInterface {
..
..
}
我想修补我的课程,所以我所做的是:
php artisan tinker
>> $a = new App\MyClass(new App\ApiInterface);
我得到的错误是:
PHP致命错误:在第1行的eval()代码中找不到类'App \ ApiInterface'
修补匠不允许我todo我觉得修补匠不认识界面作为一个类
有什么想法吗?
由于
答案 0 :(得分:5)
您无法创建界面实例。
如果你想测试你的代码,那就创建一个虚拟类并使用它。
class TestApi implements ApiInterface {}
$a = new App\MyClass(new App\TestApi);
http://php.net/manual/en/language.oop5.interfaces.php
比虚拟类更好的替代方法就是使用模拟对象。他们在程序上完成同样的事情。