コード例 #1
0
ファイル: invoice.php プロジェクト: mage2pro/core
/**
 * 2016-03-27
 * @param OrderInterface|Order $order
 * @param int $transactionId
 * @param $allowNull [optional]
 * @return Invoice|null
 */
function df_invoice_by_transaction(OrderInterface $order, $transactionId, $allowNull = false)
{
    /** @var Invoice|null $result */
    $result = df_ftn(DfPayment::getInvoiceForTransactionId($order, $transactionId));
    df_assert($allowNull || $result);
    return $result;
}
コード例 #2
0
ファイル: O.php プロジェクト: mage2pro/core
 /**
  * @param string $propertyName
  * @param string $cacheKey
  * @return void
  */
 private function cacheLoadProperty($propertyName, $cacheKey)
 {
     $cacheKey = $cacheKey . $propertyName;
     /** @var string|bool $propertyValueSerialized */
     $propertyValueSerialized = df_cache_load($cacheKey);
     if ($propertyValueSerialized) {
         /** @var mixed $propertyValue */
         /**
          * Обратите внимание,
          * что @see json_decode() в случае невозможности деколирования возвращает NULL,
          * а @see unserialize в случае невозможности деколирования возвращает FALSE.
          */
         $propertyValue = isset($this->_cachedPropertiesSimpleMap[$propertyName]) ? df_unserialize_simple($propertyValueSerialized) : df_ftn(df_unserialize($propertyValueSerialized));
         if (!is_null($propertyValue)) {
             $this->_cachedPropertiesLoaded[$propertyName] = true;
             $this->{$propertyName} = $propertyValue;
         }
     }
 }
コード例 #3
0
ファイル: X.php プロジェクト: mage2pro/core
 /**
  * Этот метод отличается от родительского
  * только возвращением 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));
 }
コード例 #4
0
ファイル: db.php プロジェクト: mage2pro/core
/**
 * 2015-11-03
 * @param $table
 * @param string $cSelect
 * @param array(string => string) $cCompare
 * @return string|null
 */
function df_fetch_one($table, $cSelect, $cCompare)
{
    /** @var Select $select */
    $select = df_db_from($table, $cSelect);
    foreach ($cCompare as $column => $value) {
        /** @var string $column */
        /** @var string $value */
        $select->where('? = ' . $column, $value);
    }
    /**
     * 2016-03-01
     * @uses \Zend_Db_Adapter_Abstract::fetchOne() возвращает false при пустом результате запроса.
     * https://mage2.pro/t/853
     */
    return df_ftn(df_conn()->fetchOne($select));
}
コード例 #5
0
ファイル: layout.php プロジェクト: mage2pro/core
/**
 * 2016-11-30
 * Наивное $e->getParentBlock()->getNameInLayout() некорректно,
 * потому что родительским элементом для $e может быть не только блок,
 * но и контейнер, и тогда $e->getParentBlock() вернёт false.
 * @param AbstractBlock|string $e
 * @return string|null
 */
function df_parent_name($e)
{
    return df_ftn(df_layout()->getParentName($e instanceof AbstractBlock ? $e->getNameInLayout() : $e));
}