Size: a a a

2020 November 09

AL

Alexander Lisachenko in PHP
Kirill Nesmeyanov
adr - это когда в роутере сраз экшн прописывается
И я скажу: ADR - это иногда больно. Начинается за здравие, а кончается как обычно - сотни классов экшенов лежат, даже потом не видно становится какие вообще есть методы над доменом - все оказывается закопано за этими тонкими экшенами, каждый их копипастит кто во что горазд.
источник

AL

Alexander Lisachenko in PHP
Особенную пикантность иногда добавляет создание отдельных респондеров под отдельные экшены, в итоге количество классов в системе растёт линейно с коэффициентом в районе 3-5...
источник

NO

Nex Otaku in PHP
Если экшены совсем тонкие, кто мешает бить их на группы и описывать каждую группу в общем файле группы? Будет аналог "контроллера".

Или вообще в списке роутов через простые анонимные функции. Тогда и сотни классов создавать не придётся.

Ну и ещё, когда приложение разрастается до сотен и тысяч классов, хорошо бы начать бить его на модули по принципам совместно используемого кода. Тогда будет не пара сотен экшенов, а пара десятков в пределах каждого модуля.
источник

А

Антон in PHP
Nex Otaku
Если экшены совсем тонкие, кто мешает бить их на группы и описывать каждую группу в общем файле группы? Будет аналог "контроллера".

Или вообще в списке роутов через простые анонимные функции. Тогда и сотни классов создавать не придётся.

Ну и ещё, когда приложение разрастается до сотен и тысяч классов, хорошо бы начать бить его на модули по принципам совместно используемого кода. Тогда будет не пара сотен экшенов, а пара десятков в пределах каждого модуля.
> Или вообще в списке роутов через простые анонимные функции. Тогда и сотни классов создавать не придётся.

Гениально.
источник

AM

Artem Molotov in PHP
Антон
> Или вообще в списке роутов через простые анонимные функции. Тогда и сотни классов создавать не придётся.

Гениально.
А чем это особо отличается от текущих подходов, кроме того, что не будет классов?
источник

А

Антон in PHP
Artem Molotov
А чем это особо отличается от текущих подходов, кроме того, что не будет классов?
Попробуй закэшировать такой файл.
источник

AM

Artem Molotov in PHP
Антон
Попробуй закэшировать такой файл.
Если есть возможность сериализовать анонимку, то и закешировать возможно. Насколько я сейчас вижу, возможность сериализации анонимок есть
источник

AM

Artem Molotov in PHP
Artem Molotov
Если есть возможность сериализовать анонимку, то и закешировать возможно. Насколько я сейчас вижу, возможность сериализации анонимок есть
Кроме этого ещё FFI с доступом к ZVAL может помочь
источник

А

Антон in PHP
Artem Molotov
Кроме этого ещё FFI с доступом к ZVAL может помочь
И это все для того, чтобы не писать хэндлеры в виде классов. Нормально, делай так.
источник

AM

Artem Molotov in PHP
Антон
И это все для того, чтобы не писать хэндлеры в виде классов. Нормально, делай так.
У каждого подхода свои плюсы и минусы. Если кому-то похрен на трудности сериализации анонимок и плюсы перевешивают, то почему бы и нет.

А вот уверенно заявлять о чей-то "гениальности" я бы не советовал.
источник

AM

Artem Molotov in PHP
Честно сказать, выше описание о ADR максимально широко и точно понять что имеется ввиду нереально. По сути, любую обработку запросов можно под ADR подтянуть.
источник

А

Антон in PHP
Artem Molotov
У каждого подхода свои плюсы и минусы. Если кому-то похрен на трудности сериализации анонимок и плюсы перевешивают, то почему бы и нет.

А вот уверенно заявлять о чей-то "гениальности" я бы не советовал.
Лично я не вижу ни одного преимущество в использовании анонимок, кроме личного предпочтения и при локальной разработке "потестить" теории. Кроме проблем кэширования, есть проблема переиспользования.
источник

AM

Artem Molotov in PHP
Artem Molotov
Честно сказать, выше описание о ADR максимально широко и точно понять что имеется ввиду нереально. По сути, любую обработку запросов можно под ADR подтянуть.
Более того, я не понимаю, почему предполагается, что ADR будет заменять MVC
источник

А

Антон in PHP
Ну и как бы все не боялись наследования, часто многие наследуются от базового контроллера фреймворка, потому что тот предоставляет полезные сервисы по умолчанию (симфони), всякие штуки, связанные с секурити и миддлварами (ларавел).
источник

MM

Maksim Masiukevich in PHP
Антон
Лично я не вижу ни одного преимущество в использовании анонимок, кроме личного предпочтения и при локальной разработке "потестить" теории. Кроме проблем кэширования, есть проблема переиспользования.
Нахер их кешировать?)
источник

AM

Artem Molotov in PHP
Антон
Лично я не вижу ни одного преимущество в использовании анонимок, кроме личного предпочтения и при локальной разработке "потестить" теории. Кроме проблем кэширования, есть проблема переиспользования.
> Лично я не вижу ни одного преимущество в использовании анонимок

Это не значит, что другие не видят. Лично я сходу могу назвать как минимум возможность выкинуть аннотации и всё с ними связанное. Описание роутов всё также будет возле екшенов.

> часто многие наследуются от базового контроллера фреймворка

Часто? Да. Многие? Да. Правильно ли это? Сомневаюсь. В истории чата можно многое найти.

> потому что тот предоставляет полезные сервисы по умолчанию (симфони)

И что мешает их через DI втащить в анонимку и без проблем использовать?
источник

MM

Maksim Masiukevich in PHP
И что там с реюзом?
источник

А

Антон in PHP
Maksim Masiukevich
Нахер их кешировать?)
В ларке есть поддержка группировки роутов, префиксы, домены и так далее. Можно закэшировать, чтобы постоянно не разбирать это дерево.
источник

MM

Maksim Masiukevich in PHP
Антон
В ларке есть поддержка группировки роутов, префиксы, домены и так далее. Можно закэшировать, чтобы постоянно не разбирать это дерево.
А, ясна
источник

А

Антон in PHP
Maksim Masiukevich
И что там с реюзом?
В тестах, например (видел такое).
источник