Spec-Zone.ru › Yii 1.1

CFormatter

Пакет system.utils
Наследование class CFormatter » CApplicationComponent » CComponent
Реализует IApplicationComponent
Подклассы CLocalizedFormatter
С 1.1.0
Исходный код framework/utils/CFormatter.php
CFormatter предоставляет набор часто используемых методов форматирования данных.

Методы форматирования, предоставляемые CFormatter, все имеют имена в формате formatXyz. Поведение некоторых из них может быть настроено через свойства CFormatter. Например, настроив dateFormat, можно управлять тем, как formatDate форматирует значение в строку даты.

Для удобства CFormatter также реализует механизм вызова методов форматирования с их сокращениями (называемыми типами). В частности, если метод форматирования имеет имя formatXyz, то его метод-сокращение — xyz (регистронезависимо). Например, вызов $formatter->date($value) эквивалентен вызову $formatter->formatDate($value).

В настоящее время распознаются следующие типы:
  • raw: значение атрибута не будет изменено вообще.
  • text: значение атрибута будет закодировано в HTML при отрисовке.
  • ntext: метод formatNtext будет вызван для форматирования значения атрибута как HTML-закодированного простого текста с переводами строк, преобразованными в теги HTML <br /> или <p></p>.
  • html: значение атрибута будет очищено и затем возвращено.
  • date: метод formatDate будет вызван для форматирования значения атрибута как даты.
  • time: метод formatTime будет вызван для форматирования значения атрибута как времени.
  • datetime: метод formatDatetime будет вызван для форматирования значения атрибута как даты с временем.
  • boolean: метод formatBoolean будет вызван для форматирования значения атрибута как логического отображения.
  • number: метод formatNumber будет вызван для форматирования значения атрибута как числового отображения.
  • email: метод formatEmail будет вызван для форматирования значения атрибута как ссылки mailto.
  • image: метод formatImage будет вызван для форматирования значения атрибута как тега изображения, где значение атрибута — URL изображения.
  • url: метод formatUrl будет вызван для форматирования значения атрибута как гиперссылки, где значение атрибута — URL.
  • size: метод formatSize будет вызван для форматирования значения атрибута, интерпретируемого как число байтов, как размера в читаемой форме.


По умолчанию CApplication регистрирует CFormatter как компонент приложения с идентификатором 'format'. Таким образом, можно вызвать Yii::app()->format->boolean(1). Возможно, вам потребуется заменить этот компонент на CLocalizedFormatter, чтобы включить форматирование на основе текущих настроек локали.

Свойства публичного доступа

Свойство Тип Описание Определено в
behaviors массив Поведение, которое должно быть прикреплено к этому компоненту. CApplicationComponent
booleanFormat массив Текст, который должен отображаться при форматировании логического значения. CFormatter
dateFormat строка Строка формата, которая должна использоваться для форматирования даты с помощью функции PHP date(). CFormatter
datetimeFormat строка Строка формата, которая должна использоваться для форматирования даты и времени с помощью функции PHP date(). CFormatter
htmlPurifier CHtmlPurifier экземпляр HTML очистителя CFormatter
htmlPurifierOptions массив Параметры, которые должны быть переданы экземпляру CHtmlPurifier, используемому в этом классе. CFormatter
isInitialized логическое значение Проверяет, был ли инициализирован этот компонент приложения. CApplicationComponent
numberFormat массив Формат, используемый для форматирования числа с помощью функции PHP number_format(). CFormatter
sizeFormat массив Формат, используемый для форматирования размера (байты). CFormatter
timeFormat строка Строка формата, которая должна использоваться для форматирования времени с помощью функции PHP date(). CFormatter

Публичные методы

Метод Описание Определено в
__call() Вызывает метод format, когда вызывается его сокращение. CFormatter
__get() Возвращает значение свойства, список обработчиков событий или поведение, основанные на его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
asa() Возвращает объект поведения по имени. CComponent
attachBehavior() Прикрепляет поведение к этому компоненту. CComponent
attachBehaviors() Прикрепляет список поведений к компоненту. CComponent
attachEventHandler() Прикрепляет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает прикрепленное поведение. CComponent
disableBehaviors() Отключает все прикрепленные поведения к этому компоненту. CComponent
enableBehavior() Включает прикрепленное поведение. CComponent
enableBehaviors() Включает все прикрепленные поведения к этому компоненту. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
format() Форматирует значение на основе заданного типа. CFormatter
formatBoolean() Форматирует значение как булево. CFormatter
formatDate() Форматирует значение как дату. CFormatter
formatDatetime() Форматирует значение как дату и время. CFormatter
formatEmail() Форматирует значение как ссылку mailto. CFormatter
formatHtml() Форматирует значение как HTML-текст без кодирования. CFormatter
formatImage() Форматирует значение как тег изображения. CFormatter
formatNtext() Форматирует значение как HTML-кодированный обычный текст и преобразует новые строки в HTML <br /> или CFormatter
formatNumber() Форматирует значение как число с помощью функции PHP number_format(). CFormatter
formatRaw() Форматирует значение как есть без форматирования. CFormatter
formatSize() Форматирует значение в байтах как размер в удобочитаемой форме. CFormatter
formatText() Форматирует значение как HTML-кодированный обычный текст. CFormatter
formatTime() Форматирует значение как время. CFormatter
formatUrl() Форматирует значение как гиперссылку. CFormatter
getEventHandlers() Возвращает список прикрепленных обработчиков событий для события. CComponent
getHtmlPurifier() Возвращает экземпляр HTML-очистителя CFormatter
getIsInitialized() Проверяет, был ли инициирован этот компонент приложения. CApplicationComponent
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли прикрепленные обработчики для события с заданным именем. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
init() Инициализирует компонент приложения. CApplicationComponent
raiseEvent() Возбуждает событие. CComponent

Защищенные методы

Метод Описание Определено в
normalizeDateValue() Нормализует выражение как метку времени. CFormatter

Подробности свойств

booleanFormat свойство

public array $booleanFormat;

текст, отображаемый при форматировании булева значения. Первый элемент соответствует отображению текста для false, второй — для true. По умолчанию array('No', 'Yes').

dateFormat свойство

public string $dateFormat;

строка формата, используемая для форматирования даты с помощью функции PHP date(). По умолчанию 'Y/m/d'.

datetimeFormat свойство

public string $datetimeFormat;

строка формата, используемая для форматирования даты и времени с помощью функции PHP date(). По умолчанию 'Y/m/d h:i:s A'.

htmlPurifier свойство только для чтения

public CHtmlPurifier getHtmlPurifier()

экземпляр HTML-очистителя

htmlPurifierOptions свойство (доступно начиная с версии v1.1.13)

public array $htmlPurifierOptions;

параметры, передаваемые экземпляру CHtmlPurifier, используемому в этом классе. CHtmlPurifier используется в методе formatHtml, поэтому это свойство может быть полезно для настройки поведения фильтрации HTML.

numberFormat свойство

public array $numberFormat;

формат, используемый для форматирования числа с помощью функции PHP number_format(). Можно указать три элемента: "decimals", "decimalSeparator" и "thousandSeparator". Они соответствуют количеству цифр после десятичной точки, символу, отображаемому в качестве десятичной точки, и символу разделителя тысяч.

sizeFormat свойство (доступно начиная с версии v1.1.11)

public array $sizeFormat;

формат, используемый для форматирования размера (байты). Можно указать три элемента: "base", "decimals" и "decimalSeparator". Они соответствуют основанию, на котором рассчитывается килобайт (1000 или 1024 байта на килобайт, по умолчанию 1024), количеству цифр после десятичной точки (по умолчанию 2) и символу, отображаемому в качестве десятичной точки. "decimalSeparator" доступен начиная с версии 1.1.13.

timeFormat свойство

public string $timeFormat;

строка формата, используемая для форматирования времени с помощью функции PHP date(). По умолчанию 'h:i:s A'.

Подробности методов

__call() метод

public mixed __call(string $name, array $parameters)
$name string имя метода
$parameters array параметры метода
{return} mixed значение, возвращаемое методом
Исходный код: framework/utils/CFormatter.php#108 (показать)
public function __call($name,$parameters)
{
    if(
method_exists($this,'format'.$name))
        return 
call_user_func_array(array($this,'format'.$name),$parameters);
    else
        return 
parent::__call($name,$parameters);
}

Вызывает метод format, когда вызывается его сокращенная форма. Это магический метод PHP, который мы переопределяем для реализации сокращенных методов форматирования.

format() метод

public string format(mixed $value, string $type)
$value mixed значение, подлежащее форматированию
$type string тип данных. Он должен соответствовать методу форматирования, доступному в CFormatter. Например, здесь мы можем использовать 'text', так как есть метод с именем formatText.
{return} string отформатированные данные
Исходный код: framework/utils/CFormatter.php#124 (показать)
public function format($value,$type)
{
    
$method='format'.$type;
    if(
method_exists($this,$method))
        return 
$this->$method($value);
    else
        throw new 
CException(Yii::t('yii','Unknown type "{type}".',array('{type}'=>$type)));
}

Форматирует значение на основе заданного типа.

formatBoolean() метод

public string formatBoolean(mixed $value)
$value mixed значение, подлежащее форматированию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#249 (показать)
public function formatBoolean($value)
{
    return 
$value ? $this->booleanFormat[1] : $this->booleanFormat[0];
}

Форматирует значение как булево.

См. также

  • booleanFormat

formatDate() метод

public string formatDate(mixed $value)
$value mixed значение, подлежащее форматированию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#196 (показать)
public function formatDate($value)
{
    return 
date($this->dateFormat,$this->normalizeDateValue($value));
}

Форматирует значение как дату.

См. также

  • dateFormat

formatDatetime() метод

public string formatDatetime(mixed $value)
$value mixed значение, подлежащее форматированию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#218 (показать)
public function formatDatetime($value)
{
    return 
date($this->datetimeFormat,$this->normalizeDateValue($value));
}

Форматирует значение как дату и время.

См. также

  • datetimeFormat

formatEmail() метод

public string formatEmail(mixed $value)
$value mixed значение, подлежащее форматированию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#259 (показать)
public function formatEmail($value)
{
    return 
CHtml::mailto($value);
}

Форматирует значение как ссылку mailto.

formatHtml() метод

public string formatHtml(mixed $value)
$value mixed значение, подлежащее форматированию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#185 (показать)
public function formatHtml($value)
{
    return 
$this->getHtmlPurifier()->purify($value);
}

Форматирует значение как HTML-текст без кодирования.

formatImage() метод

public string formatImage(mixed $value)
$value mixed значение, подлежащее форматированию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#269 (показать)
public function formatImage($value)
{
    return 
CHtml::image($value);
}

Форматирует значение как тег изображения.

formatNtext() метод

public string formatNtext(mixed $value, boolean $paragraphs=false, boolean $removeEmptyParagraphs=true)
$value mixed значение, подлежащее форматированию
$paragraphs boolean нужно ли преобразовывать новые строки в HTML-теги <p></p>; по умолчанию false, что означает использование тегов HTML <br />
$removeEmptyParagraphs boolean нужно ли удалять пустые абзацы; по умолчанию true; имеет смысл только если параметр $paragraphs равен true
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#164 (показать)
public function formatNtext($value,$paragraphs=false,$removeEmptyParagraphs=true)
{
    
$value=CHtml::encode($value);
    if(
$paragraphs)
    {
        
$value='<p>'.str_replace(array("\r\n", "\n", "\r"), '</p><p>',$value).'</p>';
        if(
$removeEmptyParagraphs)
            
$value=preg_replace('/(<\/p><p>){2,}/i','</p><p>',$value);
        return 
$value;
    }
    else
    {
        return 
nl2br($value);
    }
}

Форматирует значение как HTML-кодированный простой текст и преобразует новые строки с помощью тегов HTML <br /> или <p></p>.

formatNumber() метод

public string formatNumber(mixed $value)
$value mixed значение, подлежащее форматированию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#293 (показать)
public function formatNumber($value)
{
    return 
number_format($value,$this->numberFormat['decimals'],$this->numberFormat['decimalSeparator'],$this->numberFormat['thousandSeparator']);
}

Форматирует значение как число, используя функцию PHP number_format().

См. также

  • numberFormat

formatRaw() метод

public string formatRaw(mixed $value)
$value mixed значение, подлежащее форматированию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#139 (показать)
public function formatRaw($value)
{
    return 
$value;
}

Форматирует значение без изменений. Этот метод просто возвращает параметр без форматирования.

formatSize() метод (доступен начиная с v1.1.11)

public string formatSize(integer $value, boolean $verbose=false)
$value integer значение в байтах для форматирования
$verbose boolean использовать полные названия (например, байты, килобайты) или короткие (например, Б, КБ) по умолчанию
{return} string отформатированный результат
Исходный код: framework/utils/CFormatter.php#318 (показать)
public function formatSize($value,$verbose=false)
{
    
$base=$this->sizeFormat['base'];
    for(
$i=0; $base<=$value && $i<5; $i++)
        
$value=$value/$base;

    
$value=round($value, $this->sizeFormat['decimals']);
    
$formattedValue=isset($this->sizeFormat['decimalSeparator']) ? str_replace('.',$this->sizeFormat['decimalSeparator'],$value) : $value;
    
$params=array($value,'{n}'=>$formattedValue);

    switch(
$i)
    {
        case 
0:
            return 
$verbose ? Yii::t('yii','{n} byte|{n} bytes',$params) : Yii::t('yii', '{n} B',$params);
        case 
1:
            return 
$verbose ? Yii::t('yii','{n} kilobyte|{n} kilobytes',$params) : Yii::t('yii','{n} KB',$params);
        case 
2:
            return 
$verbose ? Yii::t('yii','{n} megabyte|{n} megabytes',$params) : Yii::t('yii','{n} MB',$params);
        case 
3:
            return 
$verbose ? Yii::t('yii','{n} gigabyte|{n} gigabytes',$params) : Yii::t('yii','{n} GB',$params);
        default:
            return 
$verbose ? Yii::t('yii','{n} terabyte|{n} terabytes',$params) : Yii::t('yii','{n} TB',$params);
    }
}

Форматирует значение в байтах как размер в удобочитаемой форме.

См. также

  • sizeFormat

formatText() метод

public string formatText(mixed $value)
$value mixed значение для форматирования
{return} строка отформатированный результат
Исходный код: framework/utils/CFormatter.php#149 (показать)
public function formatText($value)
{
    return 
CHtml::encode($value);
}

Форматирует значение как HTML-кодированный обычный текст.

formatTime() метод

public string formatTime(mixed $value)
$value mixed значение для форматирования
{return} строка отформатированный результат
Исходный код: framework/utils/CFormatter.php#207 (показать)
public function formatTime($value)
{
    return 
date($this->timeFormat,$this->normalizeDateValue($value));
}

Форматирует значение как время.

См. также

  • timeFormat

formatUrl() метод

public string formatUrl(mixed $value)
$value mixed значение для форматирования
{return} строка отформатированный результат
Исходный код: framework/utils/CFormatter.php#279 (показать)
public function formatUrl($value)
{
    
$url=$value;
    if(
strpos($url,'http://')!==0 && strpos($url,'https://')!==0)
        
$url='http://'.$url;
    return 
CHtml::link(CHtml::encode($value),$url);
}

Форматирует значение как гиперссылку.

getHtmlPurifier() метод

public CHtmlPurifier getHtmlPurifier()
{return} CHtmlPurifier экземпляр очистителя HTML
Исходный код: framework/utils/CFormatter.php#301 (показать)
public function getHtmlPurifier()
{
    if(
$this->_htmlPurifier===null)
        
$this->_htmlPurifier=new CHtmlPurifier;
    
$this->_htmlPurifier->options=$this->htmlPurifierOptions;
    return 
$this->_htmlPurifier;
}

normalizeDateValue() метод

protected int normalizeDateValue(mixed $time)
$time mixed выражение времени для нормализации
{return} целое число нормализованный результат в формате метки времени Unix
Исходный код: framework/utils/CFormatter.php#228 (показать)
protected function normalizeDateValue($time)
{
    if(
is_string($time))
    {
        if(
ctype_digit($time) || ($time{0}=='-' && ctype_digit(substr($time, 1))))
            return (int)
$time;
        else
            return 
strtotime($time);
    }
    elseif (
class_exists('DateTime', false) && $time instanceof DateTime)
        return 
$time->getTimestamp();
    else
        return (int)
$time;
}

Нормализует выражение в метку времени.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CFormatter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API