Всем добра!!! Пишу компонент, в котором наследую базовый класс 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 не делает.
Вот оно что, я не говорю что лишнее, просто хочу разобраться. А вот еще возник вопрос, а если я не буду в класс добавлять конструктор, как это скажется.
А поизучайте ООП, и будет вам там ответ. В любом случае будет полезно изучить.
Не за что!