Первый так: $this->widget(‘application.widgets.MyWidget’, array(‘paramAAA’=>123));
Второй так: $this->widget(‘application.components.MyWidget’, array(‘paramBBB’=>456));
Если в одном views вызвать сначала один виджет, а потом второй, то Yii вызывает вместо второго первый и выводит сообщение, что у него нет параметра paramBBB (а его в первом виджете и нет).
Получается, что после вызова первого виджета, Yii как бы кеширует путь до него и игнорирует путь при следующем вызове.
Если вызывать виджеты по одиночке, то все работает.
Как бороться с этим? Это баг или что-то не так делаю?
Если виджеты не внутри namespace’ов, то у вас в любом случае ничего не получится, т.к. имена классов должны быть уникальными. Так что либо давайте им разные имена, либо поместите классы в соответствующие путям пространства имён (namespace application\widgets).