virdignus 27 февраля 2015 0 5
Всем добра!!!
Пишу компонент, в котором наследую базовый класс 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) ******************************************|****************************

Так мало того, оно пишет туда, при открытии, сохранении, удалении документа. Правда при удалении оно делает только одну запись.

Буду премного благодарен за разъяснение.
Спасибо.
5 комментариев
Fi1osof1
Fi1osof 27 февраля 2015г в 12:36 #
modResource::__construct() выполняется не только в момент инициализации текущего документа, но и в момент инциализации любого другого документа, к примеру, в формируемом Wayfinder-ом меню, или новостной ленте, формируемой getResources-ом. Откройте в админке Console (дополнительный компонент) и выполните $modx->newObject('MyClass'); Увидите сообщение. Выполните три раза $modx->newObject('MyClass');, увидите три раза сообщение. Ничего лишнего там MODX не делает.
v
virdignus 27 февраля 2015г в 13:43 #
Вот оно что, я не говорю что лишнее, просто хочу разобраться.
А вот еще возник вопрос, а если я не буду в класс добавлять конструктор, как это скажется.
Fi1osof1
Fi1osof 27 февраля 2015г в 13:46 #
А поизучайте ООП, и будет вам там ответ. В любом случае будет полезно изучить.
v
virdignus 27 февраля 2015г в 13:51 #
я в процессе :)
Спасибо за ответ.
Fi1osof1
Fi1osof 27 февраля 2015г в 13:57 #
Не за что!
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.