代码:
public function __construct(\Illuminate\Container\Container $app, RuleSetInterface $rules)
{
$this->app = $app;
var_dump(is_null($rules));
var_dump($rules instanceof RuleSetInterface);
exit();
$this->rules = $rules;
}
// This how it is called:
$form->setValidatorResolver(new IlluminateValidatorResolver($app, $form));
输出:
boolean false
string '...\SubscriptionForm' (length=36)
boolean false
以下是如何定义SubscriptionForm类:
class SubscriptionForm extends AddressForm
class AddressForm extends Form
class Form
正如你所看到的,没有一个实现接口,所以var_dump($ rules instanceof RuleSetInterface);显示真相,但这段代码应该会导致致命的错误。
我很确定PHP抛出一个异常,说$rules
是意外的类型,期望RuleSetInterface。我错过了什么吗?
PHP版本5.6.14-0 + deb8u1
答案 0 :(得分:0)
好的,找到了原因。它是自定义错误处理程序,可以抑制我期待的致命错误。