Какие фасады используются в Laravel?

Я смущен Фасадами, предложенными Laravel.

Документация Laravel состояния:

Фасады предоставляют «статический» интерфейс для классов, которые доступны в приложении сервисный контейнер. Laravel поставляется с множеством фасадов, которые обеспечивают доступ почти ко всем функциям Laravel. Фасады Laravel служат в качестве «статических прокси» для базовых классов в контейнере служб, обеспечивая преимущество краткого, выразительного синтаксиса, сохраняя при этом большую тестируемость и гибкость, чем традиционные статические методы.

Пожалуйста, помогите мне понять:

  1. Почему мы действительно используем use Illuminate\Support\Facades?
  2. Как создать пользовательские фасады?

2

Решение

Спасибо SitePoint для обмена такими информативными и полезными знаниями о FACADE (FACADE в Laravel)

ФАСАД : — Шаблон Facade — это шаблон проектирования программного обеспечения, который часто используется в объектно-ориентированном программировании. Фактически фасад — это класс, заключающий в себе сложную библиотеку, чтобы обеспечить более простой и читаемый интерфейс.

Фасадный рисунок

Фасады в Ларавеле: — Фасады предоставляют «статический» интерфейс для классов, которые доступны в контейнере службы приложения. Laravel поставляется с множеством фасадов, которые обеспечивают доступ почти ко всем функциям Laravel. Фасады Laravel служат в качестве «статических прокси» для базовых классов в контейнере служб, обеспечивая преимущество краткого, выразительного синтаксиса, сохраняя при этом большую тестируемость и гибкость, чем традиционные статические методы.

Как Фасады реализованы в Laravel

Как вы, наверное, знаете, каждый сервис внутри контейнера имеет уникальное имя. В приложении Laravel для доступа к услуге непосредственно из контейнера мы можем использовать App::make() метод или вспомогательная функция app ().

<?php

App::make('some_service')->methodName();

В Laravel все сервисы имеют класс фасадов. Эти классы фасадов расширяют базовый класс Фасад, который является частью Illuminate/Support пакет. Единственное, что им нужно реализовать, — это метод getFacadeAccessor, который возвращает имя службы внутри контейнера.

6

Другие решения

Вы можете понять на этом примере

DB::table('table_name')->get();

В этом примере DB это фасад. это вызывает table() статический метод на Фасад БД.

3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector