notamedia / console-jedi

Console application for Bitrix Framework
MIT License
86 stars 26 forks source link

Автоматическая установка модуля #29

Open krllgranin opened 6 years ago

krllgranin commented 6 years ago

В классе \Notamedia\ConsoleJedi\Module\Module в методе register и unRegister есть код который проверяет существование методов InstallDB и UnInstallDB:

new \ReflectionClass($moduleObject))->getMethod('InstallDB')->class !== get_class($moduleObject)

Если метод например определен в родительском классе (не CModule, а какой то удобный базовый класс), то по условию выше выбросится исключение.

Как наиболее верно переделать условие?

nook-ru commented 6 years ago

Кажется, достаточно будет проверить не наследуется ли метод-пустышка из битриксового CModule:

(new \ReflectionClass($obj))->getMethod('InstallDB')->class === 'CModule'