Не знаю на сколько тебе будет полезен мой опыт, но у меня как раз сейчас похожая ситуация.
Только у меня назвать это конструктором сложно, да и язык не поворачивается, но очень похож на конструктор.
Суть в том, что я изначально создаю набор нужных мне полей. Подготавливаю для них название, сортировка, символьный код, тип поля.
Потом в нужном месте вывожу это набор поле и в зависимости от его "ТИПА" я вывожу нужную форму. Текст, список, html редактор и тд. и можно их добавлять и кастомизировать.
И за счет этого получается мини конструктор.