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-адреса вы получите следующий вывод -