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'));

実際に行っているのは、「フォーム」という名前で構成されたサービス プロバイダーをキーとして解決するようにアプリケーションに要求することです。これは別の方法です:

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 に答える