Exemplo n.º 1
0
 /**
  * @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;
 }
Exemplo n.º 2
0
 /** @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";
     });
 }
Exemplo n.º 3
0
 /**
  * @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;
 }
Exemplo n.º 4
0
 /** @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__};
 }
Exemplo n.º 5
0
/**      
 * 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)));
}
Exemplo n.º 6
0
 /**
  * @param string $text
  * @return string[]
  */
 public function parseTextarea($text)
 {
     return df_clean(df_trim(df_explode_n(df_trim($text))));
 }
Exemplo n.º 7
0
/**
 * @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;
}
Exemplo n.º 8
0
Arquivo: js.php Projeto: mage2pro/core
/**
* 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), '"'));
}
Exemplo n.º 9
0
/**
 * 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));
}
Exemplo n.º 10
0
/**
 * 2016-10-14
 * @param string $path
 * @return string
 */
function df_trim_ds($path)
{
    return df_trim($path, '/\\');
}
Exemplo n.º 11
0
 /**
  * 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))), '"');
 }
Exemplo n.º 12
0
 /**
  * @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))));
 }