Будет ли грубой ошибкой объявление функций в шаблоне?

#1 23 февраля 2024 в 10:04

Здравствуйте. Вопрос по правильному оформлению кода в дополнениях. Предположим, есть некая функция, которая сортирует массив с записями и выводит в рандомном порядке на странице.

  1. function getRandomItem($items, $count = 1) {
  2. if (!is_array($items)) return [];
  3. shuffle($items); // перемешиваем массив
  4. $randomItems = array();
  5. for ($i = 0; $i < min(count($items), $count); ++$i) {
  6. $randomItems[] = $items[$i];
  7. }
  8. return $randomItems;
  9. }
  10.  
  11. $random_news = getRandomItem($items, $this->getOption('limit', 10));

Сейчас эта функция лежит в widget.php, но — по некоторым соображениям, мне нужно вынести её в шаблон. Проанализировав дополнения из каталога я увидела, что многие так делают, но хотелось бы конкретики — допускается ли это в рамках разработки дополнений? Заранее спасибо.

#2 23 февраля 2024 в 12:40

При повторном использовании этого же виджета с функцией в шаблоне будет ошибка, сайт перестанет работать.

Вы можете делать рандомизацию в виджете, и передавать в шаблон уже перемешанные записи. Если перемешивание нужно многократно, вы можете это также сделать в виджете, и передать в шаблон массив массивов, например.

#3 23 февраля 2024 в 12:45

Шаблон должен выполнять поставленную ему задачу: выводить HTML код, согласно переданным в него данным.

MVC

SOLID

#4 23 февраля 2024 в 14:11

Благодарю за исчерпывающие ответы!

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.