1

我见过像他们使用外观并在访问器上注册一些东西的类。

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 包中获取的,它刚刚返回了外观,但该返回表单实际上是做什么的?

4

1 回答 1

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'));
于 2015-12-09T17:23:23.743 回答