我见过类,他们在哪里使用外观并在访问者身上注册了一些东西。
use Illuminate\Support\Facades\Facade;
/**
* @see \Collective\Html\FormBuilder
*/
class FormFacade extends Facade {
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor() { return 'form'; }
}
它只是从laravel包中取出它刚刚返回的外观,但实际上返回的形式是什么?
答案 0 :(得分:1)
Laravel的外墙是服务的“门户”。使代码看起来更具可读性是“语法糖”。所以,如果你做了类似的事情:
Form::open(array('route' => 'route.name'));
您实际在做的是要求应用程序解析配置了名称“form”的服务提供商作为其密钥。这是另一种可以做到的方式:
app('form')->open(array('route' => 'route.name'));
实际上,你也可以用旧式的方式来做,但DI(依赖注入)是一个很好的工具:
// Rough example without the actual parameters
$form = new Illuminate\Html\FormBuilder();
$form->open(array('route' => 'route.name'));