在Laravel的illuminate/support/Facades/Facade.php
档案中,有以下方法:
/**
* Get the registered name of the component.
*
* @return string
*
* @throws \RuntimeException
*/
protected static function getFacadeAccessor()
{
throw new RuntimeException('Facade does not implement getFacadeAccessor method.');
}
是否有可能做到这一点,而不是仅仅定义一个抽象方法,如下所示?
abstract protected static function getFacadeAccessor();
为什么他们可能想重新发明轮子?
答案 0 :(得分:0)
我发现以下原因here:
此方法被设计为在扩展Facade类以返回字符串时重写,该字符串是由Facade表示的服务绑定在容器内的键。默认情况下,如果未实现,它将引发异常。 与那些要使用抽象方法的框架相比,这给创建自定义外观的人提供了更多的信息。