Готовим Middleware в PHP

Поделиться
HTML-код
  • Опубликовано: 28 сен 2024

Комментарии • 32

  • @nkf-v
    @nkf-v 2 года назад +14

    Как же не хватает таких видео. Где и реализация на около архитектурном стиле и где PSR интерфейсы используются.

  • @сергейКуприянов-ц6щ
    @сергейКуприянов-ц6щ 2 года назад +6

    Да, с полугодишным опытом разработки не всё понятно, но зато есть куда расти. Автору спасибо.

  • @konstantin88527
    @konstantin88527 2 года назад +2

    Очень классно, СПАСИБО автору!

  • @gunscheler8622
    @gunscheler8622 2 года назад +3

    Крутой урок! Спасибо.

  • @sufir
    @sufir 2 года назад +1

    Спасибо, было очень любопытно!

  • @ВалерияК-й1й
    @ВалерияК-й1й Год назад

    Для новичка очень познавательно! спасибо!

  • @TimmertPlay
    @TimmertPlay 2 года назад +2

    Только тут важно учесть, что если мы хотим таким образом логировать request через миддлвейр, то необходимо его всегда ставить на первое место в списке посредников. Хоть Request у нас имутабельный, объекты, на которые ссылается объект Request ( в перспективе ) может изменится. Понимаю, что видео не об этом, но это может ввести в замешательство новичков.
    P.S. Валентин об этом сказал далее ;D

    • @vudaltsov
      @vudaltsov 2 года назад +1

      Всё верно, спасибо. Благодаря вашему комментарию проверил, как я залил в репозиторий. Оказалось, что после записи видео осталось наоборот, поправил.

  • @malferov
    @malferov Год назад +3

    Сколько же времени потрачено, осмысленно и написано кода (этюдов и боевых строк), чтобы вот так запросто набросать такой пример 👍

  • @alexandr2050
    @alexandr2050 2 года назад +3

    Было бы круто по остальных psr мастер класы psr7, psr17 и тд, сейчас нет нормально скринкаста 🥹

  • @forest_alf
    @forest_alf Год назад +1

    Конечно вроде красиво, но:
    Во-первых такой реализацией-рекурсией нельзя обрабатывать данные и пересылать дальше. Поэтому в симфони реализация гораздо лучше.
    Во-вторых array_shift это конечно по пхпшному, но не стоит удалять мидлвар из памяти(свойства). Будь это демон/асинк, то следующий запрос уже не сможет обработаться этой реализацией, там будет null вместо ваших мидлвар.
    Лучше реализовать пайплайн через обычный цикл.

  • @aragnophy
    @aragnophy 2 года назад +2

    Middleware семантически это "прослойка", нежели связующее звено

  • @aleksandrdeyder6905
    @aleksandrdeyder6905 2 года назад +2

    implements Handler в нескольких местах сильно увеличит возможности композиции)

  • @alexnov4367
    @alexnov4367 Год назад

    Паттерн Mediator (из GoF) и Middleware это одно и тоже? Mediator === Middleware ?

  • @AleksandrBugrov
    @AleksandrBugrov Год назад

    Как будто мидлвэйр это синоним цепочки обязанностей (chain of responsibility)

  • @yashkevich8164
    @yashkevich8164 2 года назад

    Не совсем понял в каком месте будет выполнятся сама бизнес логика. Валидация же должна идти в самом начале и если мне нужно в логгер записать какую то другую инфу в процессе выполнения бизнес логики тоже не понятно

  • @romanpiarce
    @romanpiarce Год назад

    а зачем array shift можно ведь current?

    • @user-davidtema
      @user-davidtema 6 месяцев назад +1

      Можно, но здесь array_shift возвращает первый элемент и удаляет его, изменяя массив. С current придётся либо дополнительно удалять первый элемент вручную либо ещё хуже.

    • @romanpiarce
      @romanpiarce 6 месяцев назад

      да, логично, спасибо)@@user-davidtema

  • @aleksandrdeyder6905
    @aleksandrdeyder6905 2 года назад +2

    usleep(100) - это 0.1 миллисекунд, а не 100)

    • @vudaltsov
      @vudaltsov 2 года назад

      Да, спасибо! u - это ведь микро, а не милли.

  • @VITALIK_DEV
    @VITALIK_DEV 2 года назад +8

    Мне понравилось 👍 Спасибо ❤ Буду ждать курс

  • @alexandr2050
    @alexandr2050 2 года назад +4

    Супер! Спасибо, ждем курс )

  • @makki108
    @makki108 9 месяцев назад

    Спасибо. Метод handle в классе Pipeline можно еще сделать так:
    private int $index = 0;
    public function handle(Request $request): Response
    {
    if (!isset($this->middlewares[$this->index])) {
    return $this->handler->handle($request(;
    }
    $this->index++;
    return $this->middlewares[$this->index - 1]->process($request, $this);
    }

  • @Potemkin2010
    @Potemkin2010 9 дней назад

    где курс Ваш именно этот найти?

  • @ЯоКуассиЖан-Клод
    @ЯоКуассиЖан-Клод 9 месяцев назад +1

    Супер огромное спасибо!)

  • @mnogokotin
    @mnogokotin 2 года назад +2

    привет, спс за видос )

  • @88billizzard88
    @88billizzard88 Год назад +1

    А где курс можно посмотреть?

  • @aleksandrkokin6065
    @aleksandrkokin6065 2 года назад +2

    Спасибо за крутой урок!

  • @solvex8304
    @solvex8304 2 года назад +1

    А курс-то когда будет?

  • @ВикторПотоцкий-и8ы
    @ВикторПотоцкий-и8ы 2 года назад +1

    Очень хорошее видео! Спасибо!

  • @taksshine
    @taksshine 2 года назад

    Отличная работа!