/** * @param string $name * @return Entity[] */ public function findByNameAll($name) { $this->getItems(); /** @noinspection PhpParamsInspection */ return df_nta(dfa($this->_mapFromNameToEntity, $name)); }
/** * 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))); }
/** * 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()); }
/** * @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; }
/** * 2016-08-31 * @override * @see \Zend_Filter_Interface::filter() * @param mixed $value * @return array|mixed */ public function filter($value) { return df_nta($value); }
/** * 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())))); } }