Паттерн Singleton на реальном примере в PHP

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 พ.ย. 2024

ความคิดเห็น • 20

  • @b-o-t-l-y
    @b-o-t-l-y ปีที่แล้ว +1

    Только что сидел и удивлялся отсутствию нормальных примеров реализации этого патерна. И вот попал на шутку об этом в Вашем видео ))) Очень благодарен за разбор!

  • @blackCitySkyline
    @blackCitySkyline 2 ปีที่แล้ว +1

    Как раз погружаюсь в паттерны, продолжай пожалуйста)

  • @user_noname_78dgdh
    @user_noname_78dgdh ปีที่แล้ว

    Спасибо. Очень доступно и познавательно

  • @Stas-ir3gh
    @Stas-ir3gh ปีที่แล้ว

    Класс! Спасибо.

  • @invgreat5608
    @invgreat5608 2 ปีที่แล้ว +1

    Очень доступно, спасибо большое!!!

  • @vadimkh
    @vadimkh 7 หลายเดือนก่อน

    если сервисы могут быть вызваны в разном порядке, то всё равно надо будет конфигурировать инстанс. вынести всё в отдельный файл init_log.php где создать объект и настроить его, а в других файлах делать require_once init_log.php ?

  • @esca7a
    @esca7a 2 ปีที่แล้ว

    Спасибо! Доходчиво!

  • @asyrtmach
    @asyrtmach 2 ปีที่แล้ว

    Заметил в методах которые возвращают объект, вы используете : self, где-то вычитал, для $this рекомендуется указывать возвращаемый тип : static глубоко не копал в чем разница, но видимо это пока просто рекомендация (для php8)

    • @agasigabrielyan1764
      @agasigabrielyan1764 ปีที่แล้ว

      static используется вместо self если вы хотите воспользоваться "поздним статическим связыванием". Т.е. если мы используем static, то происходит создание экземпляра не родителя а дочернего класса, почитайте МэттЗандстра ООП, там это хорошо описано.

  • @Denisko123
    @Denisko123 ปีที่แล้ว +1

    Ниче не понял. Изначально у тебя было два разных объекта логгера, с префиксом и без, с сохранением в файл и в лог. Как это решает твой синглтон ? Ты их тупо одинаковыми сделал. Не хочешь каждый раз создавать set-ы, сделай наиболее часто используемые данные по дефолту. Странный пример, короче. Лучше на примере подключения к БД показывать, типа один раз подключаемся к базе и все. Там уж точно ничего не меняется.

  • @СергейДолгорукий
    @СергейДолгорукий 2 ปีที่แล้ว +1

    👍👍👍👍

    • @backendtv1345
      @backendtv1345  2 ปีที่แล้ว

      спасибо, буду рад если видео вам помогло)

  • @duoduoo6732
    @duoduoo6732 ปีที่แล้ว

    так после с инглтона у нас у всех получается одинаковый набор полей "дата, префикс и тд", а если нам это не надо то всеравно придется дублировать ведь? четь суть не дублируемости не показана

  • @nobleknight4269
    @nobleknight4269 ปีที่แล้ว

    Что за музыка играет?

  • @lytican
    @lytican 2 ปีที่แล้ว

    На такой синглтон (без финализации класса) есть Паблик Морозов. А конкретно ваш синглтон можно обойти даже не экстэндя, а просто через __sleep __wakeup. Лучше бы про нужду использования побольше рассказали и про спор паттерн это или антипаттерн.

    • @backendtv1345
      @backendtv1345  2 ปีที่แล้ว

      Привет, можно обойти конечно, например еще можно через Reflection. но цель видео была продемонстрировать пример использования паттерна, показать как он упрощает код на конкретном примере, а не просто написать очередной класс, который есть во всех видео. Про антипаттерны спасибо за идею, записал.

    • @lytican
      @lytican 2 ปีที่แล้ว +1

      @@backendtv1345 так вы весь класс логгера расписывали. Прям каждый метод логгера. Просто функционал логгера рассказываете. Причём аж с двумя видами логгирования даже. Лично я смотрел на x1.75 и успевал перематывать. А видео то про паттерн синглтон, а теперь вы говорите что детали паттерна синглтон в этом видео не важны? Так переименуйте в "Пишем логгер".

    • @backendtv1345
      @backendtv1345  2 ปีที่แล้ว

      класс Логгера был описан, чтобы показать что мы имеем и что будет с использованием паттерна и без него. насчет финализации класса - принципы синглтона обязывают иметь всегда один объект одного класса, если вы от него наследуетесь - это другой класс. про wakeup - посмотрел сейчас примеры от других авторов, половина этот метод не закрывают. ну в теории можно бы закрыть, вы правы. но на цель видео это не влияет;)

    • @GTAlexSEO
      @GTAlexSEO 2 ปีที่แล้ว +1

      "финализация класса", "обойти синглтон", "экстэндя", "__sleep __wakeup" - вот про всё это тоже можно пару слов? а то конечно прикольно ваш диалог посмотреть, но хотелось бы и хоть что-то понять :)

    • @user-wg3wd6nf7w
      @user-wg3wd6nf7w 3 หลายเดือนก่อน

      Вы, конечно, правы. Но и коллеги, Ваши, наверное, не партизаны и диверсанты. Странно ожидать, что кто-то увидев синглтон будет специально пытаться создать второй экземпляр.