Пишу расширение, в нем есть килограмм настроек, поэтому, думаю нужно их сериализовать(serialize) и хранить или отдельными строчками в таблице или в файле в виде массива. Как можно реализовать валидацию с обеих сторон. Массив у меня получается вроде этого только по длиннее.
Раньше для каждого вида настроек я создавал модель( валидация решалась сама собой), но когда настроек стало больше, нужно какое-то другое решение.Если есть другие варианты буду рад.
Прекрасно помещается в 1 таблицу, зачем здесь serialize?
Кладем все в 1 табличку в разные ячейки. Создаем модель Settings и пишем туда все необходимые валидации. Если нужно делать выборки именно такого вида (тоесть например настройки для контактов выбрать и прочее), при использовании АR:
public function scopes()
{
return array(
'contacts'=>array(
'select' => 'skype,email,phone',
),
);
}
//При использовании
Settings::model()->contacts()->findByPk();
Если же не используете AR выделите поля вверху модели для выборок и пользуйтесь,
public static contacts_fields = "skype, email, phone";
//В коде
$result=Yii::app()->db->createCommand("SELECT {Settings::contacts_fields} FROM settins WHERE id=1")->queryRow();
Это сугубо мое мнение, но я бы делал так, не знаю что вас пугает.