Как оптимизировать контроллер на Yii2?
Про материал: https://elisdn.ru/blog/search?q=yii2
или используйте паттерн DTO - и в него запихните все запросы которые вам необходимы в экшене и получится примерно так:
$dto->similarQuestions()
или можно пойти еще дальше и создать Active Query как сделано здесь https://github.com/ElisDN/yii2-demo-catalog/blob/m...
и тогда можно будет сделать так:
$dto->questions()->similar();
$dto->questions()->last();
$dto->questions()->count(); //или тут использовать связь и вызывать count как свойство.
Ну а в будущем если понадобится просто оптимизируете запросы questions или в файле DTO или его составные части уже непосредственно в файле QuestionsSubQuery(или назвать просто QuestionsQuery)
Кусок кода: Question::find(), генерирует ActiveQuery, отнаследуйтесь от стандартного, и реализуйте часто используемые конструкции в нем.

Документация: https://www.yiiframework.com/doc/guide/2.0/ru/db-a...