Laravel — Фасады

Поділитись

Фасады предоставляют статический интерфейс для классов, которые доступны в контейнере службы приложения. Фасады 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 \ Составители \ BladeCompilerblade.compiler
автобусОсветить \ Контракты \ Bus \ Dispatcher
кэшОсветить \ Cache \ Repositoryкэш
конфигОсветить \ Config \ Repositoryконфиг
печеньеОсветить \ Cookie \ CookieJarпеченье
криптаОсветить \ Encryption \ EncrypterEncrypter
база данныхОсветить \ Database \ DatabaseManagerдецибел
БД (Экземпляр)Осветить \ Database \ Connection
СобытиеОсветить \ События \ грузоотправительСобытия
файлОсветить \ FileSystem \ Filesystemфайлы
ВоротаОсветить \ Контракты \ Auth \ Access \ Gate
гашишОсветить \ Контракты \ хеширование \ Hasherгашиш
входОсветить \ Http \ Запросзапрос
LangОсветить \ Translation \ Translatorпереводчик
ЖурналОсветить \ Log \ Writerжурнал
почтаОсветить \ почта \ Mailerрассылка
парольОсветить \ Auth \ Пароли \ PasswordBrokerauth.password
ОчередьОсветить \ Queue \ QueueManagerочередь
Очередь (Экземпляр)Осветить \ Queue \ QueueInterface
Очередь (Базовый класс)Осветить \ Queue \ Queue
переадресовыватьОсветить \ Routing \ редиректорпереадресовывать
RedisОсветить \ Redis \ DatabaseRedis
ЗапросОсветить \ Http \ Запросзапрос
откликОсветить \ Контракты \ Routing \ ResponseFactory
маршрутОсветить \ Routing \ Routerмаршрутизатор
схемаОсветить \ Database \ Схемы \ Blueprint
сессияОсветить \ Session \ SessionManagerсессия
Сессия (Экземпляр)Осветить \ Session \ магазин
Место храненияОсветить \ Контракты \ Filesystem \ Factoryфайловая система
URLОсветить \ Routing \ UrlGeneratorURL
ValidatorОсветить \ Validation \ Factoryвалидатор
Валидатор (Экземпляр)Осветить \ Validation \ Validator
ПосмотретьОсветить \ View \ FactoryПосмотреть
Просмотр (Экземпляр)Осветить \ View \ View

пример

Шаг 1. Создайте поставщика услуг с именем TestFacadesServiceProvider , выполнив следующую команду.

php artisan make:provider TestFacadesServiceProvider

Шаг 2 — После успешного выполнения вы получите следующий вывод —

FacadesServiceProvider

Шаг 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

Поділитись