Exemple #1
0
 /**
  * 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);
     }
 }
Exemple #2
0
 /**
  * Этот метод отличается от родительского
  * только возвращением 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));
 }