/** * @used-by Df_Admin_Config_Font::applyLetterCase() * @param string $text * @param string $format * @return string */ public static function apply($text, $format) { /** @var string $result */ switch ($format) { case self::$LOWERCASE: $result = mb_strtolower($text); break; case self::$UPPERCASE: $result = mb_strtoupper($text); break; case self::$UCFIRST: $result = df_ucfirst(mb_strtolower(df_trim($text))); break; case self::$UCWORDS: $result = df_ucwords($text); break; default: $result = $text; } /** * Убрал валидацию результата намеренно: сам метод безобиден, * и даже если он как-то неправильно будет работать — ничего страшного. * Пока метод дал сбой только один раз, в магазине laap.ru * при форматировании заголовков административной таблицы товаров * (видимо, сбой произошёл из-за влияния некоего стороннего модуля). */ return $result; }
/** @return string */ private function content() { return dfc($this, function () { /** @var string $content */ $content = df_trim($this[self::$P__CONTENT], "\n"); return $this->tagIs('pre', 'code') || !df_contains($content, "\n") ? $content : "\n" . df_tab_multiline($content) . "\n"; }); }
/** * @override * @param mixed $value * @throws \Zend_Filter_Exception * @return string */ public function filter($value) { /** @var string $result */ try { $result = df_trim($value); } catch (\Exception $e) { df_error(new \Zend_Filter_Exception(df_ets($e))); } return $result; }
/** @return string */ private function context() { if (!isset($this->{__METHOD__})) { /** @var string $result */ $result = ''; if (is_file($this->filePath()) && $this->line()) { /** @var string[] $fileContents */ $fileContents = file($this->filePath()); if (is_array($fileContents)) { /** * Перенос строки здесь не нужен, * потому что строки с кодом * уже содержат переносы на следующую стоку * http://php.net/manual/function.file.php */ /** @var int $fileLength */ $fileLength = count($fileContents); /** @var int $radius */ $radius = 8; /** @var int $start */ $start = max(0, $this->line() - $radius); /** @var int $end */ $end = min($fileLength, $start + 2 * $radius); // 2016-07-31 // Нам нужна информация именно функции next (caller). if ($this->_next) { /** @var RFA|null $func */ $func = $this->_next->functionA(); /** * 2016-07-31 * Если @uses \ReflectionFunctionAbstract::isInternal() вернёт true, * то @uses \ReflectionFunctionAbstract::getStartLine() и * @uses \ReflectionFunctionAbstract::getEndLine() вернут false. * http://stackoverflow.com/questions/2222142#comment25428181_2222404 * isInternal() === TRUE means ->getFileName() and ->getStartLine() will return FALSE */ if ($func && !$func->isInternal()) { /** @var int|false $fStart */ $fStart = $func->getStartLine(); df_assert_ne(false, $fStart); /** @var int|false $fEnd */ $fEnd = $func->getEndLine(); df_assert_ne(false, $fEnd); // 2016-07-31 // http://stackoverflow.com/a/7027198 // It's actually - 1, otherwise you wont get the function() block. $start = max($start, $fStart - 1); $end = min($end, $fEnd); } } $result = df_trim(implode(array_slice($fileContents, $start, $end - $start)), $charlist = "\r\n"); } } $this->{__METHOD__} = $result; } return $this->{__METHOD__}; }
/** * 2016-05-20 * Возвращает 2-буквенный код страны по стандарту ISO 3166-1 alpha-2 * по названию страны для заданной локали (или системной локали по умолчанию) * https://ru.wikipedia.org/wiki/ISO_3166-1 * @param string $name * @param string|null $locale [optional] * @return string|null */ function df_country_ntc($name, $locale = null) { df_param_string_not_empty($name, 0); return dfa(df_countries_ntc($locale), mb_strtoupper(df_trim($name))); }
/** * @param string $text * @return string[] */ public function parseTextarea($text) { return df_clean(df_trim(df_explode_n(df_trim($text)))); }
/** * @param string|X $x * @param bool $throw [optional] * @return X|null * @throws E */ function df_xml_parse($x, $throw = true) { /** @var X $result */ if ($x instanceof X) { $result = $x; } else { df_param_string_not_empty($x, 0); $result = null; try { $result = new X($x); } catch (\Exception $e) { if ($throw) { df_error("При синтаксическом разборе документа XML произошёл сбой:\n" . "«%s»\n" . "********************\n" . "%s\n" . "********************\n", df_ets($e), df_trim($x)); } } } return $result; }
/** * 2015-02-17 * Экранирует строку для вставки её в код на JavaScript. * @uses json_encode() рекомендуют * как самый правильный способ вставки строки из PHP в JavaScript: * http://stackoverflow.com/a/169035 * Заменяем символ одинарной кавычки его кодом Unicode, * чтобы результат метода можно было вставлять внутрь обрамленной одиночными кавычками строки, * например: var $name = '<?php echo df_ejs($name); ?>'; * @used-by df_admin_button_location() * @used-by Df_Admin_Config_DynamicTable_Column::renderTemplate() * @used-by app/design/adminhtml/rm/default/template/df/admin/column/select.phtml * @used-by app/design/adminhtml/rm/default/template/df/admin/field/button.phtml * @used-by app/design/frontend/rm/default/template/df/checkout/onepage/shipping_method/available/js.phtml * @param string $text * @return string */ function df_ejs($text) { return str_replace("'", '\\u0027', df_trim(json_encode($text), '"')); }
/** * 2015-02-07 * @param string|null $s * @param string $delimiter [optional] * @return string[] */ function df_csv_parse($s, $delimiter = ',') { return !$s ? [] : df_trim(explode($delimiter, $s)); }
/** * 2016-10-14 * @param string $path * @return string */ function df_trim_ds($path) { return df_trim($path, '/\\'); }
/** * 2015-12-13 * @used-by df_fe_uid() * Метод @uses \Magento\Framework\Data\Form\Element\AbstractElement::_getUiId() * возвращает атрибут и его значение уже в виже слитной строки, поэтому парсим её. * https://github.com/magento/magento2/blob/c58d2d/lib/internal/Magento/Framework/Data/Form/Element/AbstractElement.php#L331-L338 * @param AE $element * @param string $suffix [optional] * @return string */ public static function uidSt(AE $element, $suffix = null) { return df_trim(df_last(explode('=', $element->_getUiId($suffix))), '"'); }
/** * @used-by \Df\Qa\Message_Failure::traceS() * @used-by \Df\Qa\Message_Failure_Exception::preface() * @used-by report() * @param string|string[] $items * @return string */ protected function sections($items) { if (!is_array($items)) { $items = func_get_args(); } /** @var string $s */ static $s; if (!$s) { $s = "\n" . str_repeat('*', 36) . "\n"; } return implode($s, array_filter(df_trim(df_xml_output_plain($items)))); }