Фасады предоставляют статический интерфейс для классов, которые доступны в контейнере службы приложения. Фасады 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 вы получите следующий вывод —