За последние 24 часа нас посетили 36902 программиста и 7900 роботов. Сейчас ищут 1696 программистов ...

Статические методы в интерфейсах

Тема в разделе "PHP для новичков", создана пользователем Nikita2705, 22 авг 2023.

  1. Nikita2705

    Nikita2705 Новичок

    С нами с:
    10 авг 2022
    Сообщения:
    3
    Симпатии:
    0
    Правильно ли называть конструкции вида Cache::get('key') в Laravel статическими "интерфейсами"?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Нет. Cache - это класс, пусть и из лютой чёрной магии состоящий
    --- Добавлено ---
    В терминологии ларки - фасад
     
    Вероломство и MouseZver нравится это.
  3. Nikita2705

    Nikita2705 Новичок

    С нами с:
    10 авг 2022
    Сообщения:
    3
    Симпатии:
    0
    Скажите, по своей сути фасады что представляют, статические методы класса? В документации написано так: "Фасады предоставляют «статический» интерфейс для классов, доступных в контейнере служб приложения."
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Там магия. Они перехватывают вызовы через магический метод __callStatic, переадресуя его классам из того самого контейнера служб. Плюс какими-то трюками с автозагрузкой делают фасады доступными из корневого неймспейса, что, в принципе, не сильно гуд.
    --- Добавлено ---
    Кстати, в доке про это есть
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    Это отдельная магия Laravel, не фасадами реализуемая, а "алиасами классов". Если алиас явно не описан в config/app.php, он автоматом резолвиться не будет!
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    [offtopic]
    Слава разрабам PHPStorm и его плагинов! Благодаря им мы в IDE можем видеть сигнатуры методов даже за этой лютой магией!
    [/offtopic]