Фасады предоставляют статический интерфейс для классов, которые доступны в контейнере службы приложения. Фасады Laravel служат в качестве статических посредников для базовых классов в контейнере служб, обеспечивая преимущество краткого, выразительного синтаксиса, сохраняя при этом большую тестируемость и гибкость, чем традиционные статические методы.
Как создать Фасад
Ниже приведены шаги для создания Фасад в Laravel —
-
Шаг 1 — Создать файл класса PHP.
-
Шаг 2 — Привязать этот класс к поставщику услуг.
-
Шаг 3 — Зарегистрируйте этого ServiceProvider для
Config \ app.php в качестве провайдеров.
-
Шаг 4 — Создать класс, который распространяется на этот класс
lluminate \ Support \ Фасады \ Фасад.
-
Шаг 5 — Зарегистрируйте пункт 4 в Config \ app.php как псевдонимы.
Шаг 1 — Создать файл класса PHP.
Шаг 2 — Привязать этот класс к поставщику услуг.
Шаг 3 — Зарегистрируйте этого ServiceProvider для
Config \ app.php в качестве провайдеров.
Шаг 4 — Создать класс, который распространяется на этот класс
lluminate \ Support \ Фасады \ Фасад.
Шаг 5 — Зарегистрируйте пункт 4 в Config \ app.php как псевдонимы.
Ссылка на класс фасадов
Laravel поставляется с множеством фасадов. В следующей таблице показаны встроенные ссылки на класс Facade —
| Фасад | Учебный класс | Привязка сервисного контейнера |
|---|---|---|
| Приложение | Осветить \ Foundation \ Application | приложение |
| ремесленник | Осветить \ Контракты \ Console \ Kernel | ремесленник |
| Auth | Осветить \ Auth \ AuthManager | авт |
| Auth (экземпляр) | Осветить \ Auth \ Guard | |
| лопасть | Осветить \ View \ Составители \ BladeCompiler | blade.compiler |
| автобус | Осветить \ Контракты \ Bus \ Dispatcher | |
| кэш | Осветить \ Cache \ Repository | кэш |
| конфиг | Осветить \ Config \ Repository | конфиг |
| печенье | Осветить \ Cookie \ CookieJar | печенье |
| крипта | Осветить \ Encryption \ Encrypter | Encrypter |
| база данных | Осветить \ Database \ DatabaseManager | децибел |
| БД (Экземпляр) | Осветить \ Database \ Connection | |
| Событие | Осветить \ События \ грузоотправитель | События |
| файл | Осветить \ FileSystem \ Filesystem | файлы |
| Ворота | Осветить \ Контракты \ Auth \ Access \ Gate | |
| гашиш | Осветить \ Контракты \ хеширование \ Hasher | гашиш |
| вход | Осветить \ Http \ Запрос | запрос |
| Lang | Осветить \ Translation \ Translator | переводчик |
| Журнал | Осветить \ Log \ Writer | журнал |
| почта | Осветить \ почта \ Mailer | рассылка |
| пароль | Осветить \ Auth \ Пароли \ PasswordBroker | auth.password |
| Очередь | Осветить \ Queue \ QueueManager | очередь |
| Очередь (Экземпляр) | Осветить \ Queue \ QueueInterface | |
| Очередь (Базовый класс) | Осветить \ Queue \ Queue | |
| переадресовывать | Осветить \ Routing \ редиректор | переадресовывать |
| Redis | Осветить \ Redis \ Database | Redis |
| Запрос | Осветить \ Http \ Запрос | запрос |
| отклик | Осветить \ Контракты \ Routing \ ResponseFactory | |
| маршрут | Осветить \ Routing \ Router | маршрутизатор |
| схема | Осветить \ Database \ Схемы \ Blueprint | |
| сессия | Осветить \ Session \ SessionManager | сессия |
| Сессия (Экземпляр) | Осветить \ Session \ магазин | |
| Место хранения | Осветить \ Контракты \ Filesystem \ Factory | файловая система |
| URL | Осветить \ Routing \ UrlGenerator | URL |
| Validator | Осветить \ Validation \ Factory | валидатор |
| Валидатор (Экземпляр) | Осветить \ Validation \ Validator | |
| Посмотреть | Осветить \ View \ Factory | Посмотреть |
| Просмотр (Экземпляр) | Осветить \ View \ View |
пример
Шаг 1. Создайте поставщика услуг с именем TestFacadesServiceProvider , выполнив следующую команду.
php artisan make:provider TestFacadesServiceProvider
Шаг 2 — После успешного выполнения вы получите следующий вывод —
Шаг 3 — Создайте класс с именем TestFacades.php в App / Test .
Приложение / Тест / TestFacades.php
<?php namespace App\Test; class TestFacades{ public function testingFacades() { echo "Testing the Facades in Laravel."; } } ?>
Шаг 4 — Создайте класс Facade с именем «TestFacades.php» в «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'; }
}
Шаг 5 — Создайте класс Facade с именем TestFacadesServiceProviders.php в App / Test / Facades.
App / Провайдеры / 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;
});
}
}
Шаг 6 — Добавьте поставщика услуг в файл config / app.php, как показано на рисунке ниже.
конфиг / app.php
Шаг 7 — Добавьте псевдоним в файл config / app.php, как показано на рисунке ниже.
конфиг / app.php
Шаг 8 — Добавьте следующие строки в app / Http / rout.php.
приложение / Http / routes.php
Route::get('/facadeex', function() {
return TestFacades::testingFacades();
});
Шаг 9 — Посетите следующий URL, чтобы проверить Фасад.
http://localhost:8000/facadeex
Шаг 10 — После посещения URL вы получите следующий вывод —


