Interceptors в PHP на примере Spiral framework

Sdílet
Vložit
  • čas přidán 8. 05. 2024
  • В этом ролике поговорим что такое Interceptors, сравним их с middlevars, посмотрим как они выглядят в контексте Spiral Framework, заодно взглянем на этот интересный фреймворк. Решим крутую задачу с помощью Interceptors в Spiral, попробуем то же самое сделать в Laravel. Также поговорим о Error Handler и о том как его реализовать с помощью Interceptors и многое другое.
    PHP Fapt time:
    / @php-farttime
    t.me/php_fart
    Поддержать меня на Boosty - boosty.to/cutcode/donate
    🎁 Для вас есть подарок, забирайте - cutcode.dev/l/4pxn 🎁
    #Interceptors#laravel#cutcode#spiral
    ---------------------------------------------------------------------------------
    🚀📹👨‍🏫 Как насчет прокачки своих навыков с помощью наших обучающих видеокурсов по web-разработке? Переходи на мой сайт 👇
    learn.cutcode.dev/?
    ❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - cutcode.dev/l/icwf
    ---------------------------------------------------------------------------------
    ⏰ Таймкоды:
    00:00 - Введение
    02:25 - Что такое Interceptors
    04:44 - HTTP Interceptors
    08:15 - создаем атрибут
    10:47 - создаем Interceptor
    11:56 - добавляем логику в Interceptor
    15:40 - проверка работы
    17:30 - реализация задачи с помощью Laravel
    20:25 - возможности Interceptor
    23:55 - подведение итогов
    ---------------------------------------------------------------------------------
    📹 делитесь этим видео с друзьями:
    • Interceptors в PHP на ...
    🔔 подпишитесь на CZcams-канал: czcams.com/users/CutCodeRu?s...
    📼 Курс по Laravel с нуля:
    • Курс по Laravel 8 обуч...
    Interceptors в PHP на примере Spiral framework
    ---------------------------------------------------------------------------------
    🔗 наш сайт: cutcode.dev/?
    📱 Наш telegram-канал: t.me/laravel_cutcode

Komentáře • 39

  • @friendvane7612
    @friendvane7612 Před 16 dny +7

    После видео про Octane и Roadrunner заинтересовался темой долгоживущего приложения и тоже вышел на spiral, он сразу заточен под такой режим работы, что выглядит многообещающе, видео про него будут не менее интересны чем про ларавел, учитывая как много всего там реализовано по другому, даже более грамотно. Про Interceptors было интересно посмотреть, спасибо

  • @user-id4br7zq4p
    @user-id4br7zq4p Před 16 dny +3

    Спасибо за ролик!
    Стал лучше понимать как работают Magento’вские плагины и что это зверь такой - interceptor
    Ждём обзор на BMW 😅

  • @adikalona
    @adikalona Před 15 dny +2

    Да и вобще. Побольше видосов о спиральке бы. Пора туда переходить

    • @CutCodeRu
      @CutCodeRu  Před 15 dny

      А пробовали уже фрейм?

    • @adikalona
      @adikalona Před 14 dny

      ​@@CutCodeRu На совсем простеньком проекте решил его использовать

  • @vovka_goodwin
    @vovka_goodwin Před 15 dny +1

    Пробовали использовать спираль в качестве фреймворка, из минусов могу сказать - это очень медленная работа с базой, а еще после лары, апи орм выглядит очень неудобной)
    Но есть и пара очень удобных моментов - например объекты конфигов

    • @ButscHster
      @ButscHster Před 12 dny

      А в чем медленность базы? Не замечал проблем. Есть какие то подробности?

    • @vovka_goodwin
      @vovka_goodwin Před 11 dny

      ​@@ButscHsterесли честно, подробностей не вспомню, но одной из проблем было то что при запуску миграций он лез в information_schema постгреса не смотря на то что после первого запуска по идее должен был закешировать это, да и после ручного прогрева он это игнорировал

  • @DIMASP17
    @DIMASP17 Před 16 dny +2

    Можно больше о spiral

  • @KDenisG
    @KDenisG Před 16 dny

    Сравнение HyperF и laravel octane на swoole, корутины, больше примеров.
    Спираль конечно интересно, но с ларавел не готов пока уходить, а на свул ларавел поддерживает подобие корутин, а это скорость работы прям очень поправляет.

    • @CutCodeRu
      @CutCodeRu  Před 15 dny

      Дойдем и до этого, спасибо

  • @Mr_x_One
    @Mr_x_One Před 16 dny +1

    Когда уже новый ролик по moonshine мы сможем увидеть :)

    • @CutCodeRu
      @CutCodeRu  Před 16 dny

      Так только вот стрим же был)

    • @Mr_x_One
      @Mr_x_One Před 16 dny

      @@CutCodeRu мало ))) мы ненасытные что касается moonshine )))

    • @CutCodeRu
      @CutCodeRu  Před 16 dny +1

      @@Mr_x_One поддерживаю такое) сейчас погружен в разработку 3 версии и периодически буду делать стримы и делится продвижением! Ну и по 2.0 тоже обязательно что нибудь снимем

  • @mr.maclaud
    @mr.maclaud Před 16 dny

    Когда новый ролик по го?) Там даже кто то попытался ларавел на го перенести, уже есть проект)

    • @CutCodeRu
      @CutCodeRu  Před 16 dny

      Ага, goravel
      Ролик по го скоро сделаем, немного отвлеклись

  • @adikalona
    @adikalona Před 15 dny +1

    Сяп за интерсепторы, дока спираля сыровата, перечитывал раздел с интерсепторами раз 20) Там кстати очепятка есть, которая сильно в заблуждение вводит, да и про параметры метода process ни слова

    • @CutCodeRu
      @CutCodeRu  Před 15 dny

      Что за опечатка?

    • @adikalona
      @adikalona Před 14 dny

      @@CutCodeRu Там написано, что интерсепторы должны реализовать CoreInterceptorInterface, который требует реализовать метод callAction, хотя очевидно, что речь идет о методе process (или о вызове callAction из process). Вобще этот момент стоило бы более детально разжевать - в примере они создают класс DatabaseQueryCore, внутри которого тоже создают метод callAction, да еще и с почти теме же параметрами, что и callAction интерсептора. В итоге не понятно интерсептор вызывает callAction потомучто в DatabaseQueryCore метод также называется или они просто дали одинаковые названия, а интерсептор должен вызывать callAction всегда. Но тогда непонятно почему параметры сопадают да и как внутри callAction интерсептора определить какой метод DatabaseQueryCore был вызван. А может DatabaseQueryCore обязан реализовать callAction, чтобы получить возможность прицепить к нему интерсептор, и это именно так работает и интерсептор цепляется к целому классу, а не к методу

  • @Endru1994
    @Endru1994 Před 16 dny

    что-то подобное давно реализовано, никогда мне не симпатизирующей: cms wordpress ? Или ошибаюсь ?

    • @CutCodeRu
      @CutCodeRu  Před 15 dny

      Возможно но врядли

  • @vesh95
    @vesh95 Před 16 dny

    Это по сути декоратор же получается
    Есть ли какое-то правило в каком порядке тогда эти интерсепторы будут выполняться? Атрибуты это, конечно, круто, но всё же на то, чтобы оборачивать логику метода ими у меня есть сомнения. Люди сразу же попытаются обернуть в несколько интерсепторов даже не понимая как это работает.

    • @CutCodeRu
      @CutCodeRu  Před 15 dny

      Ну атрибуты здесь как пример а не часть механики интерцепторов

    • @vesh95
      @vesh95 Před 15 dny

      @@CutCodeRu Ну через атрибуты очень удобно всякое делать с такой либой как мне показалось, но тут похоже нужно разобраться с порядком их запуска, иначе авторизовать пользователя не очень хорошо будет после выдачи вьюхи)

  • @pavlobezdvernyi9348
    @pavlobezdvernyi9348 Před 15 dny +1

    Спираль топ

    • @CutCodeRu
      @CutCodeRu  Před 15 dny

      Используете?

    • @pavlobezdvernyi9348
      @pavlobezdvernyi9348 Před 15 dny

      @@CutCodeRu как раз в стадии РнД для перехода инфры компании с ларика на спиральку

  • @mr.maclaud
    @mr.maclaud Před 16 dny

    про бмв орнул)

    • @CutCodeRu
      @CutCodeRu  Před 16 dny

      Жду когда свяжутся сижу)

  • @codememory
    @codememory Před 16 dny

    Runtime Reflection так себе идея особенно в сторону производительности. Кэш рефлексии нужен

    • @CutCodeRu
      @CutCodeRu  Před 15 dny

      Будет)

    • @ButscHster
      @ButscHster Před 15 dny

      Ну так Spiral - long running, после первого вызова закешировал в память и в след раз достал из памяти.

  • @user-od9gc4cl3e
    @user-od9gc4cl3e Před 16 dny

    как spiral работает с рефлексией? пример на видео, где используется голая нативная рефлексия, на ларе приведет к RPS = 20. Ни о каких нагрузках говорить не получится.

    • @CutCodeRu
      @CutCodeRu  Před 15 dny

      Я рефлексию накидал просто как пример, без какой либо оптимизации
      В новой концепции интерсептороу на сколько я знаю будет и кеш сразу

    • @ButscHster
      @ButscHster Před 15 dny

      Ну так Spiral = long running, после первого вызова закешировал в память и в след раз достал из памяти.

  • @MordreDgms
    @MordreDgms Před 6 dny

    боже какой же бред, что фреймворк что "интерцептор"... зря потратил 25 минут своей жизни

    • @CutCodeRu
      @CutCodeRu  Před 6 dny

      Что ролик, что канал) спасибо за комментарий, рад что вы остаетесь с нами!