26 февр. 2015 г., 22:10

Конструктор CRC, множественые вызовы.

Всем добра!!! Пишу компонент, в котором наследую базовый класс modResource.В классе создал конструктор.
class MyClass extends modResource { public $showInContextMenu = true; function __construct(xPDO & $xpdo) { parent:: __construct($xpdo); $this->xpdo->log(1,"******************************************|****************************"); }
В итоге, при создании документа в лог пишет 8 раз!!! То есть конструктор вызывается 8 раз, Почему так происходит?, Почему при создании документа, MODX обращается к нескольким файлам
[2015-02-26 15:59:41] (ERROR @ /connectors/index.php) ******************************************|**************************** [2015-02-26 15:59:47] (ERROR @ /connectors/index.php) ******************************************|**************************** [2015-02-26 15:59:47] (ERROR @ /connectors/index.php) ******************************************|**************************** [2015-02-26 15:59:48] (ERROR @ /connectors/index.php) ******************************************|**************************** [2015-02-26 15:59:48] (ERROR @ /connectors/index.php) ******************************************|**************************** [2015-02-26 15:59:48] (ERROR @ /connectors/index.php) ******************************************|**************************** [2015-02-26 15:59:48] (ERROR @ /connectors/index.php) ******************************************|**************************** [2015-02-26 15:59:48] (ERROR @ /connectors/index.php) ******************************************|****************************
Так мало того, оно пишет туда, при открытии, сохранении, удалении документа. Правда при удалении оно делает только одну запись.
Буду премного благодарен за разъяснение. Спасибо.
modResource::__construct() выполняется не только в момент инициализации текущего документа, но и в момент инциализации любого другого документа, к примеру, в формируемом Wayfinder-ом меню, или новостной ленте, формируемой getResources-ом. Откройте в админке Console (дополнительный компонент) и выполните $modx->newObject('MyClass'); Увидите сообщение. Выполните три раза $modx->newObject('MyClass');, увидите три раза сообщение. Ничего лишнего там MODX не делает.
Вот оно что, я не говорю что лишнее, просто хочу разобраться. А вот еще возник вопрос, а если я не буду в класс добавлять конструктор, как это скажется.
А поизучайте ООП, и будет вам там ответ. В любом случае будет полезно изучить.
я в процессе :) Спасибо за ответ.

Добавить комментарий