ragnar_ok
@ragnar_ok

Как избежать спагетти-кода в result_modifier?

Работа с result_modifier.php вынуждает писать спагетти-код. Поддерживать эту портянку становится невозможно. Как провести рефакторинг?

Кажется, что нормальным решением может быть использование фабрики компонентов (паттерн "Фабричный метод"). Создать фабрику для каждого компонента (bitrix:news.list, bitrix:news.detail ...). В result_modifier.php шаблона компонента получать из фабрики нужный класс со статическими методами для конкретно этого result_modifier.php.

Есть какой-то общепринятый подход?
  • Вопрос задан
  • 490 просмотров
Решения вопроса 1
Нет необходимости делать в виде модуля нечто под отдельный проект.
Я делаю так (и не редко встречают похожий подход):
В /local/php_interface/lib размещаю классы реализующие некоторую функциональность конкретного проекта, и подключаю его с помощью автозагрузки composer:
60fb43892d58e809635873.png
Тут можно разместить и классы реализующие модуль и просто обычные хелперы - не вижу ничего плохого в процедурном подходе, если все идеи реализованы в виде простых, коротких и минимально функциональных чистых статических методах.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы