Я смущен Фасадами, предложенными Laravel.
Документация Laravel состояния:
Фасады предоставляют «статический» интерфейс для классов, которые доступны в приложении сервисный контейнер. Laravel поставляется с множеством фасадов, которые обеспечивают доступ почти ко всем функциям Laravel. Фасады Laravel служат в качестве «статических прокси» для базовых классов в контейнере служб, обеспечивая преимущество краткого, выразительного синтаксиса, сохраняя при этом большую тестируемость и гибкость, чем традиционные статические методы.
Пожалуйста, помогите мне понять:
use Illuminate\Support\Facades
?ФАСАД : — Шаблон Facade — это шаблон проектирования программного обеспечения, который часто используется в объектно-ориентированном программировании. Фактически фасад — это класс, заключающий в себе сложную библиотеку, чтобы обеспечить более простой и читаемый интерфейс.
Фасады в Ларавеле: — Фасады предоставляют «статический» интерфейс для классов, которые доступны в контейнере службы приложения. Laravel поставляется с множеством фасадов, которые обеспечивают доступ почти ко всем функциям Laravel. Фасады Laravel служат в качестве «статических прокси» для базовых классов в контейнере служб, обеспечивая преимущество краткого, выразительного синтаксиса, сохраняя при этом большую тестируемость и гибкость, чем традиционные статические методы.
Как Фасады реализованы в Laravel
Как вы, наверное, знаете, каждый сервис внутри контейнера имеет уникальное имя. В приложении Laravel для доступа к услуге непосредственно из контейнера мы можем использовать App::make()
метод или вспомогательная функция app ().
<?php
App::make('some_service')->methodName();
В Laravel все сервисы имеют класс фасадов. Эти классы фасадов расширяют базовый класс Фасад, который является частью Illuminate/Support
пакет. Единственное, что им нужно реализовать, — это метод getFacadeAccessor, который возвращает имя службы внутри контейнера.
Вы можете понять на этом примере
DB::table('table_name')->get();
В этом примере DB
это фасад. это вызывает table()
статический метод на Фасад БД.