Laravel-ファサード
ファサードは staticアプリケーションのサービスコンテナで利用可能なクラスへのインターフェイス。Laravelfacades として役立ちます static proxies サービスコンテナ内の基礎となるクラスに適用され、従来の静的メソッドよりもテスト容易性と柔軟性を維持しながら、簡潔で表現力豊かな構文の利点を提供します。
ファサードの作成方法
LaravelでFacadeを作成する手順は次のとおりです-
Step 1 −PHPクラスファイルを作成します。
Step 2 −そのクラスをサービスプロバイダーにバインドします。
Step 3 −そのServiceProviderをに登録する
プロバイダーとしてのConfig \ app.php。
Step 4 −このクラスが拡張されるクラスの作成
lluminate \ Support \ Facades \ Facade。
Step 5 −ポイント4をエイリアスとしてConfig \ app.phpに登録します。
ファサードクラスリファレンス
Laravelには多くのファサードが付属しています。次の表は、組み込みのFacadeクラス参照を示しています-
ファサード | クラス | サービスコンテナバインディング |
---|---|---|
アプリ | Illuminate \ Foundation \ Application | アプリ |
職人 | Illuminate \ Contracts \ Console \ Kernel | 職人 |
認証 | Illuminate \ Auth \ AuthManager | auth |
Auth(インスタンス) | Illuminate \ Auth \ Guard | |
刃 | Illuminate \ View \ Compilers \ BladeCompiler | Blade.compiler |
バス | Illuminate \ Contracts \ Bus \ Dispatcher | |
キャッシュ | Illuminate \ Cache \ Repository | キャッシュ |
構成 | Illuminate \ Config \ Repository | 設定 |
クッキー | Illuminate \ Cookie \ CookieJar | クッキー |
クリプト | Illuminate \ Encryption \ Encrypter | 暗号化装置 |
DB | Illuminate \ Database \ DatabaseManager | db |
DB(インスタンス) | Illuminate \ Database \ Connection | |
イベント | Illuminate \ Events \ Dispatcher | イベント |
ファイル | Illuminate \ Filesystem \ Filesystem | ファイル |
ゲート | Illuminate \ Contracts \ Auth \ Access \ Gate | |
ハッシュ | Illuminate \ Contracts \ Hashing \ Hasher | ハッシュ |
入力 | Illuminate \ Http \ Request | リクエスト |
ラング | Illuminate \ Translation \ Translator | 翻訳者 |
ログ | Illuminate \ Log \ Writer | ログ |
郵便物 | Illuminate \ Mail \ Mailer | メーラー |
パスワード | Illuminate \ Auth \ Passwords \ PasswordBroker | auth.password |
キュー | Illuminate \ Queue \ QueueManager | キュー |
キュー(インスタンス) | Illuminate \ Queue \ QueueInterface | |
キュー(基本クラス) | Illuminate \ Queue \ Queue | |
リダイレクト | Illuminate \ Routing \ Redirector | リダイレクト |
Redis | Illuminate \ Redis \ Database | redis |
リクエスト | Illuminate \ Http \ Request | リクエスト |
応答 | Illuminate \ Contracts \ Routing \ ResponseFactory | |
ルート | Illuminate \ Routing \ Router | ルーター |
スキーマ | Illuminate \ Database \ Schema \ Blueprint | |
セッション | Illuminate \ Session \ SessionManager | セッション |
セッション(インスタンス) | Illuminate \ Session \ Store | |
ストレージ | Illuminate \ Contracts \ Filesystem \ Factory | ファイルシステム |
URL | Illuminate \ Routing \ UrlGenerator | url |
バリデーター | Illuminate \ Validation \ Factory | バリデーター |
バリデーター(インスタンス) | Illuminate \ Validation \ Validator | |
見る | Illuminate \ View \ Factory | 見る |
ビュー(インスタンス) | Illuminate \ View \ View |
例
Step 1 −というサービスプロバイダーを作成します TestFacadesServiceProvider 次のコマンドを実行します。
php artisan make:provider TestFacadesServiceProvider
Step 2 −正常に実行されると、次の出力が表示されます−
Step 3 −というクラスを作成します TestFacades.php で App/Test。
App/Test/TestFacades.php
<?php
namespace App\Test;
class TestFacades{
public function testingFacades() {
echo "Testing the Facades in Laravel.";
}
}
?>
Step 4 −というファサードクラスを作成します “TestFacades.php” で “App/Test/Facades”。
App/Test/Facades/TestFacades.php
<?php
namespace app\Test\Facades;
use Illuminate\Support\Facades\Facade;
class TestFacades extends Facade {
protected static function getFacadeAccessor() { return 'test'; }
}
Step 5 −というファサードクラスを作成します TestFacadesServiceProviders.php で App/Test/Facades.
App/Providers/TestFacadesServiceProviders.php
<?php
namespace App\Providers;
use App;
use Illuminate\Support\ServiceProvider;
class TestFacadesServiceProvider extends ServiceProvider {
public function boot() {
//
}
public function register() {
App::bind('test',function() {
return new \App\Test\TestFacades;
});
}
}
Step 6 −ファイルにサービスプロバイダーを追加する config/app.php 下の図に示すように。
config/app.php
Step 7 −ファイルにエイリアスを追加する config/app.php 下の図に示すように。
config/app.php
Step 8 −次の行をに追加します app/Http/routes.php.
app/Http/routes.php
Route::get('/facadeex', function() {
return TestFacades::testingFacades();
});
Step 9 −次のURLにアクセスして、ファサードをテストします。
http://localhost:8000/facadeex
Step 10 − URLにアクセスすると、次の出力が表示されます−