Не работает наследование классов (решено)
Пытаюсь через плугин расширить функционал ModileUser->EntityUser
1. Создал плугин «PluginReles.class.php»
2. Сделал для него соответствующий
"\reles\classes\modules\user\entity\User.entity.class.php"
3. Делаю вызов из tpl шаблона
Результат:
Если оставить только первый вызов, то никакие данные не выводятся.
Если оставить только второй вызов, то получаю ошибку:
Перерыл гору литературы, ошибку так и не нашел. Прошу помощи у коллег. Заранее спасибо.
1. Создал плугин «PluginReles.class.php»
<?php if (!class_exists('Plugin')) { die('Hacking attemp!'); } class PluginReles extends Plugin { protected $aInherits = array( 'entity' => array('ModuleUser_EntityUser','PluginReles_ModileUser_EntityUser'), ); public function Activate() { return true; } public function Deactivate() { return true; } public function Init() { } } ?>
2. Сделал для него соответствующий
"\reles\classes\modules\user\entity\User.entity.class.php"
<?php class PluginReles_ModileUser_EntityUser extends PluginReles_Inherit_ModuleUser_EntityUser { public function GetRole() { echo "111111111111"; $s = '123456789'; return $s; } public function Testtest() { echo "222222222222"; $s='101112131415'; return $s; } } ?>
3. Делаю вызов из tpl шаблона
1. {$oUserCurrent->getRole()} 2. {$oUserCurrent->testtest()}
Результат:
Если оставить только первый вызов, то никакие данные не выводятся.
Если оставить только второй вызов, то получаю ошибку:
Fatal error: Uncaught exception 'Exception' with message 'Undefined method module: testtest' in /home/vhosts/ls1/engine/classes/Engine.class.php on line 604 Exception: Undefined method module: testtest in /home/vhosts/ls1/engine/classes/Engine.class.php on line 604
Перерыл гору литературы, ошибку так и не нашел. Прошу помощи у коллег. Заранее спасибо.
10 комментариев
ModileUser — это что?
+ я попробовал намеренно сделать синтаксическую php ошибку в User.entity.class.php ругани не было. Создалось стойкое ощущение, что класс банально не подгружается.
Я заметил минимум 2 места
После тыканья меня в ошибку, я тоже нашел два места.
где вы видели такие примеры именования методов?
спереди должно быть только get или set:
и, соответственно, в шаблоне:
getRole заработал после добавления в «PluginReles.class.php» и перелогина, хотя до этого 20 раз сбрасывал кеш.
Вопрос можно закрывать. Спасибо.