и для этого мне приходится иметь tows, class и что нить другое что мне понадобится в виде публичных св-в класса виджета.
это нормально ? или я могу это получить как-то еще ?
из мана
Если имя опции не является свойством CFormInputElement, оно будет считаться атрибутом соответствующего HTML-тега input. К примеру, так как выше опция maxlength не является свойством CFormInputElement, она будет использована как атрибут maxlength HTML-элемента input.
нельзя ли то же самое получить и для виджета ?
только не нужно атрибутом сразу делать, пусть лучше бы какое нить приватное свойство (массив) класса виджета наполнялось.
В виджетах принято html атрибуты задавать через свойство htmlOptions (пример). Но если вам это кажется неудобным (хотя на мой взгляд перемешивание свойств самого виджета с атрибутами тега не самая удачная идея), то объявляйте их как public свойства виджета либо переопределяйте метод __set($name, $value) класса.