Фасады Laravel — это код WET?

Согласно документации:

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

И в соответствии с этим ссылка на сайт

Отказ от ответственности: я не обязательно согласен, что фасады плохие или анти-образец

Вопрос. Фасады — это ВОДНЫЕ коды?

1

Решение

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

$request = app('request');

$inputs = $request->all();

Приведенный выше код разрешает класс запроса из контейнера, и он может разрешить его из контейнера, потому что в контейнере ключ request уже привязан / сопоставлен с классом, который будет разрешен фреймворком. Механизм разрешения хранится внутри контейнера, поэтому можно разрешить класс. Обратите внимание, что фасад не задействован, тогда что делает фасад?

Ну, если вы делаете то же самое, используя фасад, то вы можете сделать это, используя что-то вроде этого:

$inputs = Request::all();

В этом случае будет вызван фасад для этого класса, и он разрешит базовый класс. В основном это два шага:

1 Получить псевдоним для этого и в этом случае request

2 Разрешите класс, используя псевдоним, т.е. app('request')

Итак, что это делает для вас, это то, что на самом деле сам фасад делает вызов app('request') для вас, но единственное, что он делает, это выясняет alias имя первым, чтобы он мог вызывать его, используя это имя из контейнера. Фасад обеспечивает легкий вход в класс (или здание). Надеюсь, я ответил на ваш вопрос. Подробнее читайте о фасаде в документация.

2

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

Других решений пока нет …

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