Попробовал с помощью виджета вернуть массив, но судя по всему виджеты на это не рассчитаны. Можно ли как-то в функции run() вернуть массив, а не строку?
Давай сначала: ты же понимаешь назначение виджетов?
Если понимаешь – то с чего бы виджетам возвращать что-либо, кроме результатов рендеринга?
Возможно, для того, что тебе нужно – тебе стоит попробовать использовать хелперы?
Мне очень понравилось как на базе Yii2 можно создать виджет. Есть класс, есть параметры. Если какой-то из параметров не определен - то выводится ошибка.
А с хелперами как-то скромно - добавил одну функцию и еще какой-то ручной автозагрузчик нужно делать.
Можно ли хелперы оформить также как и виджеты?
Есть класс, один класс - это один хелпер + он автоматически загружается.
Виджеты же наследуются от Yii родительского класса Widget, а хелперы получается что нет. Хотя по идее как думал у них тоже должен быть один какой-то родительский класс.
И что тебе дает, то что класс наследован от другого класса? Вопрос практической пользы.
Чем дальше ты думаешь о ненужных иерархиях тем больше уходишь от основной задачи.
Пробуй думать наоборот от проблемы к решению.