Есть мнение, вы усложняете
G_Z 27.11.2014 16:44
Рефлексия не очень удобный инструмент для подобного.
Проще жёстко задать, что, к примеру, все поля лежат в $self.fields, сделать пару методов по их добавлению-удалению, если хочется — через свойства.
Далее, задать ряд общих методов для класса каждого поля (у них общий родительский класс, а значит и общий интерфейс), скажем, @printViewHTML — вывод поля в виде HTML, @printEditHTML — вывод HTML для формы, и так далее.
Зачем знать внутреннюю кухню каждого класса, если все они поддерживают единый интерфейс.
Если какой-то из классов должен иметь свой специализированный интерфейс, придумайте способ его декларации, пусть все доступные методы лежат в каком-нибудь $self.methods.
Загляните в
ORM PF'а, мне кажется, это пример того, что вы делаете.