Laravel - Фасады
Фасады обеспечивают staticинтерфейс к классам, которые доступны в сервисном контейнере приложения. Laravelfacades служить в качестве static proxies в базовые классы в контейнере службы, обеспечивая преимущество краткого выразительного синтаксиса при сохранении большей тестируемости и гибкости, чем традиционные статические методы.
Как создать фасад
Ниже приведены шаги для создания фасада в Laravel:
Step 1 - Создать файл класса PHP.
Step 2 - Привяжите этот класс к поставщику услуг.
Step 3 - Зарегистрируйте этого ServiceProvider в
Config \ app.php в качестве провайдеров.
Step 4 - Создать класс, на который распространяется этот класс
Подсветка \ Опора \ Фасады \ Фасад.
Step 5 - Зарегистрируйте точку 4 в Config \ app.php как псевдонимы.
Справочник классов фасадов
Laravel поставляется с множеством фасадов. В следующей таблице показаны встроенные ссылки на классы фасадов -
| Фасад | Класс | Привязка сервисного контейнера |
|---|---|---|
| Приложение | Освещение \ Основание \ Приложение | приложение |
| Ремесленник | Освещение \ Контракты \ Консоль \ Ядро | ремесленник |
| Auth | Освещение \ Auth \ AuthManager | авторизация |
| Auth (экземпляр) | Освещение \ Auth \ Guard | |
| Лезвие | Освещение \ Просмотр \ Компиляторы \ BladeCompiler | blade.compiler |
| Автобус | Освещение \ Контракты \ Автобус \ Диспетчер | |
| Кеш | Освещение \ Кэш \ Репозиторий | тайник |
| Конфиг | Освещение \ Конфиг \ Репозиторий | config |
| Cookie-файлы | Освещение \ Cookie \ CookieJar | печенье |
| Склеп | Освещение \ Шифрование \ Шифрование | шифровальщик |
| БД | Освещение \ База данных \ DatabaseManager | db |
| БД (экземпляр) | Освещение \ База данных \ Подключение | |
| Событие | Освещение \ События \ Диспетчер | События |
| файл | Освещение \ Файловая система \ Файловая система | файлы |
| Ворота | Освещение \ Контракты \ Auth \ Access \ Gate | |
| Хеш | Освещение \ Контракты \ Хеширование \ Хешер | хэш |
| Ввод | Освещение \ Http \ Request | запрос |
| Lang | Освещение \ Перевод \ Переводчик | переводчик |
| Журнал | Освещение \ Журнал \ Writer | журнал |
| Почта | Освещение \ Почта \ Почтовик | почтовик |
| пароль | Освещение \ Auth \ Passwords \ PasswordBroker | auth.password |
| Очередь | Освещение \ Queue \ QueueManager | очередь |
| Очередь (экземпляр) | Освещение \ Queue \ QueueInterface | |
| Очередь (базовый класс) | Освещение \ Очередь \ Очередь | |
| Перенаправить | Освещение \ Маршрутизация \ Перенаправитель | перенаправить |
| Redis | Освещение \ Redis \ База данных | Redis |
| Запрос | Освещение \ Http \ Request | запрос |
| отклик | Освещение \ Контракты \ Маршрутизация \ ResponseFactory | |
| Маршрут | Освещение \ Маршрутизация \ Маршрутизатор | маршрутизатор |
| Схема | Освещение \ База данных \ Схема \ Blueprint | |
| Сессия | Освещение \ Session \ SessionManager | сессия |
| Сессия (экземпляр) | Освещение \ Сессия \ Магазин | |
| Место хранения | Освещение \ Контракты \ Файловая система \ Фабрика | файловая система |
| URL | Освещение \ Routing \ UrlGenerator | url |
| Валидатор | Освещение \ Проверка \ Завод | валидатор |
| Валидатор (экземпляр) | Освещение \ Проверка \ Валидатор | |
| Посмотреть | Освещение \ Вид \ Завод | Посмотреть |
| Просмотр (экземпляр) | Освещение \ Просмотр \ Просмотр |
пример
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-адреса вы получите следующий вывод -