/** * Returns node found by the $path * * @see \Magento\Framework\Simplexml\Element::descend * @param string $path * @return \Magento\Framework\Simplexml\Element|bool */ public function getNode($path = null) { if (!$this->_xml instanceof \Magento\Framework\Simplexml\Element) { return false; } elseif ($path === null) { return $this->_xml; } else { return $this->_xml->descend($path); } }
/** * Этот метод отличается от родительского * только возвращением null вместо false в случае отсутствия значения. * * Обратите внимание, что мы можем так делать, * потому что родительский класс сам внутри себя не использует метод descend * (и, соответственно, не полагается на возвращение значения false). * * Обратите внимание, что интерпретатор PHP не разрешает * присваивать полям объектов класса CX (и его наследников) * значения сложных типов. * Такое присваивание приводит к сбою: * «Warning: It is not yet possible to assign complex types to attributes». * * По этой причине не используем кэширование результата. * * в комментарии к свойству @see \Magento\Framework\Simplexml\Element::$_parent * дана рекомендация использования функции @see spl_object_hash(), * однако это слишком сложно и необчевидно, ускорит ли работу системы * (также могут быть проблемы с расходом оперативной памяти). * * @override * @param string|string[] $path * @return X|null */ public function descend($path) { return df_ftn(parent::descend($path)); }