parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Есть мнение, вы усложняете

G_Z 27.11.2014 16:44

Рефлексия не очень удобный инструмент для подобного.

Проще жёстко задать, что, к примеру, все поля лежат в $self.fields, сделать пару методов по их добавлению-удалению, если хочется — через свойства.

Далее, задать ряд общих методов для класса каждого поля (у них общий родительский класс, а значит и общий интерфейс), скажем, @printViewHTML — вывод поля в виде HTML, @printEditHTML — вывод HTML для формы, и так далее.
Зачем знать внутреннюю кухню каждого класса, если все они поддерживают единый интерфейс.

Если какой-то из классов должен иметь свой специализированный интерфейс, придумайте способ его декларации, пусть все доступные методы лежат в каком-нибудь $self.methods.

Загляните в ORM PF'а, мне кажется, это пример того, что вы делаете.