parser

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

 

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

Хочу сделать упрощенное "наследование" компонентов

virusav 19.09 20:48 / 19.09 20:48

Есть компонент user:
api_method/
UserRegister.p
UserLogin.p
...
controller/UserController.p
config/UserConfig.p
...
Один компонент можно использовать в разных апи.

Если надо переопределить метод регистрации, то создаем дочерний компонент admin_user:
api_method/AdminUserRegister.p
config/AdminUserConfig.p
При этом больше ничего не надо объявлять.
В конфигурации апи указан AdminUserConfig.p.

Если надо вызвать метод, то движок берет конфиг и проверяет наличие класса.
Нашел - вызвал, иначе проверяет родителя.

Т.е. вызов методов регистрации и логина будет таким:
admin_user/config/AdminUserConfig.p -> user/controller/UserController.p - admin_user/api_method/AdminUserRegister.p
admin_user/config/AdminUserConfig.p -> user/controller/UserController.p - user/api_method/UserLogin.p
В противном случае пришлось бы наследовать каждый класс родительского компонента.

Возможно, это не совсем логично, но позволит с минимальным переопределением изменять список доступных методов и переопределять их.
В компоненте может быть 10 методов, но в одном апи нужны все, в другом - 5, а в третьем 3 + новый.