Esempio n. 1
0
 /**
  * @param string $name
  * @return Entity[]
  */
 public function findByNameAll($name)
 {
     $this->getItems();
     /** @noinspection PhpParamsInspection */
     return df_nta(dfa($this->_mapFromNameToEntity, $name));
 }
Esempio n. 2
0
 /**
  * 2015-12-16
  * @param string|null $key [optional]
  * @param null|string|int|S|Store $s [optional]
  * @return mixed[]
  */
 private function json($key = null, $s = null)
 {
     return df_nta(@df_json_decode($this->v($key ?: df_caller_f(), $s)));
 }
Esempio n. 3
0
File: db.php Progetto: mage2pro/core
/**
 * 2015-08-23
 * Обратите внимание, что метод
 * @see Varien_Db_Adapter_Pdo_Mysql::getPrimaryKeyName()
 * возвращает не название колонки, а слово «PRIMARY»,
 * поэтому он нам не подходит.
 * @used-by Df_Localization_Onetime_Dictionary_Db_Table::primaryKey()
 * @param string $table
 * @return string|null
 */
function df_primary_key($table)
{
    return dfcf(function ($table) {
        return df_first(df_nta(dfa_deep(df_conn()->getIndexList($table), 'PRIMARY/COLUMNS_LIST')));
    }, func_get_args());
}
Esempio n. 4
0
File: X.php Progetto: mage2pro/core
 /**
  * @param string|null $key
  * @param mixed $value
  * @param string[]|bool $wrapInCData [optional]
  * @return X
  */
 private function importString($key, $value, $wrapInCData = [])
 {
     /** @var bool $wrapInCDataAll */
     $wrapInCDataAll = is_array($wrapInCData) ? false : !!$wrapInCData;
     $wrapInCData = df_nta($wrapInCData);
     /**
      * null означает, что метод importString
      * не должен создавать дочерний тэг $key,
      * а должен добавить текст
      * в качестве единственного содержимого текущего тэга
      */
     if (!is_null($key)) {
         df_param_string($key, 0);
     }
     /** @var string $keyAsString */
     $keyAsString = is_null($key) ? $this->getName() : $key;
     /**
      * @var bool $valueIsString
      */
     $valueIsString = is_string($value);
     /** @var string $valueAsString */
     $valueAsString = null;
     try {
         $valueAsString = $valueIsString ? $value : df_string($value);
     } catch (E $e) {
         df_error("Не могу сконвертировать значение ключа «%s» в строку.\n%s", $keyAsString, df_ets($e));
     }
     /** @var bool $needWrapInCData */
     $needWrapInCData = $wrapInCDataAll;
     if ($valueIsString && $valueAsString) {
         /**
         * Поддержка синтаксиса
         				 array(
         					'Представление' =>
         						df_cdata(
         							$this->getAddress()->format(
         								Mage_Customer_Model_Attribute_Data::OUTPUT_FORMAT_TEXT
         							)
         						)
         				 )
         * Обратите внимание, что проверка на синтаксис[[]] должна предшествовать
         * проверке на принадлежность ключа $keyAsString в массиве $wrapInCData,
         * потому что при соответствии синтаксису[[]] нам надо удалить из значения символы[[]].
         * Обратите внимание, что нам нужно выполнить проверку на синтаксис df_cdata ([[]])
         * даже при $wrapInCDataAll = true, потому что маркеры [[ и ]] из данных надо удалять.
         */
         /**
          * Перед вызовом медленной функции @see preg_match
          * выполняем более быструю и простую проверку @see df_contains
          */
         if (df_contains($valueAsString, '[[') && df_contains($valueAsString, ']]')) {
             /** @var string $pattern */
             $pattern = "#\\[\\[([\\s\\S]*)\\]\\]#mu";
             /** @var string[] $matches */
             $matches = [];
             if (1 === preg_match($pattern, $valueAsString, $matches)) {
                 $valueAsString = $matches[1];
                 $needWrapInCData = true;
             }
         }
         $needWrapInCData = $needWrapInCData || in_array($keyAsString, $wrapInCData);
     }
     /** @var X $result */
     $result = $needWrapInCData ? is_null($key) ? $this->setCData($valueAsString) : $this->addChildText($keyAsString, $valueAsString) : (is_null($key) ? $this->setValue($valueAsString) : $this->addChild($keyAsString, $valueAsString));
     df_assert($result instanceof X);
     return $result;
 }
Esempio n. 5
0
 /**
  * 2016-08-31
  * @override
  * @see \Zend_Filter_Interface::filter()
  * @param mixed $value
  * @return array|mixed
  */
 public function filter($value)
 {
     return df_nta($value);
 }
Esempio n. 6
0
 /**
 * 2015-12-07
 * Сначала пробовал здесь код:
 		$value = json_decode($this->getValue(), $assoc = true);
 			dfa_deep_set($this->_data, $this->valuePathA(), $value);
 			$this->setValue(null);
 * Однако этот код неверен,
 * потому что нам нужно установить данные именно в поле value:
 * https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Block/System/Config/Form.php#L344
 * $data = $backendModel->getValue();
 * https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Block/System/Config/Form.php#L362
 * 'value' => $data
 * @used-by \Df\Framework\Form\Element\FieldsetBackend::_afterLoad()
 * @used-by \Df\Framework\Form\Element\FieldsetBackend::dfSaveAfter()
 * @return void
 */
 protected function valueUnserialize()
 {
     /**
      * 2016-07-31
      * Добавил проверку !is_array($this->getValue()),
      * потому что родительский метод @see \Df\Config\Backend::save()
      * будет вызывать нас даже если при сериализации произошёл сбой
      * (и она не была завершена успешно):
      * https://github.com/mage2pro/core/blob/1.5.7/Config/Backend.php?ts=4#L29-L35
      */
     if (!is_array($this->getValue())) {
         $this->setValue($this->processA(df_nta(df_json_decode($this->getValue()))));
     }
 }