laravelで使われているファザードについて調べてみた
laravelで使われているファザードについて調べてみた
laravel クエリビルダについて調べてみた
laravelでのupdateOrCreateメソッド
laravel でのconfigからパラメータ取得
php artisanコマンドについてまとめてみた
laravel 導入時に躓いた点
laravel 5.6でログインページがみれない(2)
laravel 5.6でログインページがみれない(1)
ファザードとは
laravelでの開発を進めていて、ファザードという用語を聞くようになりましたが、いまいち理解できていないので、この際調べてみて理解を深めようということでまとめてみました。
ファザードとは、公式ドキュメントによると,
- アプリケーションのサービスコンテナに登録したクラスへ、「静的」なインターフェイスを提供
- Laravelのほとんどの機能に対して、ファサードが用意されている
- 静的メソッドよりもテストの行いやすさと柔軟性を保ちながらも、簡潔で記述的であるという利点がある。
使われ方
Route::get('/', 'WelcomeController@index');
Routeクラスのstaticで宣言されたgetメソッドを使っていることになりますが、
‘Route‘ => Illuminate\Support\Facades\Route::class
のように、Routeクラスが‘ Illuminate\Support\Facades\Routeでメソッドがgetを使っていることになります。
ファザードクラス
vendor\laravel\framework\src\Illuminate\Support\Facades\Route.php
class Route extends Facade$
32 {$
33 /**$
34 * Get the registered name of the component.$
35 *$
36 * @return string$
37 */$
38 protected static function getFacadeAccessor()$
39 {$
40 return ‘router‘;$
41 }$
42 }$
ファザードクラスである、Routeクラスを見たところ、staticなメソッドにgetというものが存在していませんでした。
ファザードクラス一覧
\config\app.phpに書いてありました。
Illuminate\Auth\AuthServiceProvider::class,$
145 Illuminate\Broadcasting\BroadcastServiceProvider::class,$
146 Illuminate\Bus\BusServiceProvider::class,$
147 Illuminate\Cache\CacheServiceProvider::class,$
148 Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,$
149 Illuminate\Cookie\CookieServiceProvider::class,$
150 Illuminate\Database\DatabaseServiceProvider::class,$
151 Illuminate\Encryption\EncryptionServiceProvider::class,$
152 Illuminate\Filesystem\FilesystemServiceProvider::class,$
153 Illuminate\Foundation\Providers\FoundationServiceProvider::class,$
154 Illuminate\Hashing\HashServiceProvider::class,$
155 Illuminate\Mail\MailServiceProvider::class,$
156 Illuminate\Notifications\NotificationServiceProvider::class,$
157 Illuminate\Pagination\PaginationServiceProvider::class,$
158 Illuminate\Pipeline\PipelineServiceProvider::class,$
159 Illuminate\Queue\QueueServiceProvider::class,$
160 Illuminate\Redis\RedisServiceProvider::class,$
161 Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,$
162 Illuminate\Session\SessionServiceProvider::class,$
163 Illuminate\Translation\TranslationServiceProvider::class,$
164 Illuminate\Validation\ValidationServiceProvider::class,$
165 Illuminate\View\ViewServiceProvider::class,$
次に調べること
・サービスコンテナ
・サービスプロバイダー
ディスカッション
コメント一覧
まだ、コメントがありません