Через /config/main.php это не очень удобно — потому что тогда вам нужно будет предусмотреть ситуацию, чтобы всё это дело записывалось в конфиг, когда администратор сервера захочет что-то модифицировать «через интерфейс».
Проще создать пару таблиц в БД, которые будут хранить эти поля.
CREATE TABLE IF NOT EXISTS `table_table` (
`table_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
PRIMARY KEY (`table_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
INSERT INTO `table` (`table_id`, `name`) VALUES
(1, 'accounts');
CREATE TABLE IF NOT EXISTS `table_field` (
`table_field_id` int(11) NOT NULL AUTO_INCREMENT,
`table_id` int(11) NOT NULL,
`name` varchar(32) NOT NULL,
`alias` varchar(32) NOT NULL,
`label` varchar(64) NOT NULL,
PRIMARY KEY (`table_field_id`),
KEY `table_id` (`table_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ALTER TABLE `table_field`
ADD CONSTRAINT `table_field_ibfk_1` FOREIGN KEY (`table_id`)
REFERENCES `table_table` (`table_id`) ON DELETE CASCADE ON UPDATE CASCADE;
INSERT INTO `table_field` (`table_field_id`, `table_id`, `name`, `alias`, `label`) VALUES
(1, 1, 'id', 'id', 'ID'),
(2, 1, 'username', 'username', 'Ваше имя'),
(3, 1, 'password', 'pass', 'Пароль');
Потом создаёте модели для этих двух таблиц, контроллеры, реализуете
CRU
D, и у вас есть интерфейс для настройки полей. «C» и «D» я зачеркнул, чтобы показать, что нужно только оставить возможность читать и редактировать существующие записи, а добавлять/удалять их возможности быть не должно. На странице редактирования, например, нужно сделать так, чтобы доступны для изменения были только «alias» и «label».
Данные о полях потом получаете как обычно данные из модели получаете. Я бы не стал использовать их как
$model->{тут_генерируется_название_поля}, но прямо так навскидку я ничего другого предложить не могу, потому что не вижу всей картины.
Получать данные из конфига тоже можно, но вы в этот момент потеряете возможность настраивать состав полей через интерфейс (без дополнительных сложностей с чтением/перезаписью PHP-файла из PHP-файла).