```
Где ключ название переменной, а значения правила.
Да, придётся много писать, но более универсальное средство.
Да и делается это сколько угодно раз.
Чтобы вернуть всё в состояние переменных сделаем extract();
Profit, написали библиотеку для преобразований, а в представлении работаем уже с подготовленными данными.
```php
class Controller {
public function actionIndex(){
$data = Model::getData();
$preparedData = (new DataPreparator()) -> setData([ 'dateOne' => ['value' => $data['dateNewYork'], 'format' => 'EN' ] ])->getPreparedData();
$this->renderView('view', $preparedData );
}
А не проще решить всё абстракцией?))
Ставим прослойку между контроллером и представлением и обрабатываем нужные данные, так как нужно (экранирование, преобразование даты и прочее)?
Тем самым в представлении уже подготовленные данные, которые можно выводить как угодно.
Прослойка мигрирует из проекта в проект.
Даже в Bitrix можно воткнуть данное решение ( костылём правда ).
Так что я лично не вижу смысла в добавлении оператора, так как экранировать можно в миллионах разных вариаций и одним оператором это не решить.
Есть некий абстрактный сервис преобразования ( будем использовать немного магии ).
```php
interface IDataPreparator{
public function setData( array $data );
/**
* return array
*/
public function getData();
}
```
Массив передаём предположим так.
```php
$data = [
'dateOne' => ['value' => '10 feb 2012', 'type' => 'date', 'format' => 'RU' ],
'dateTwo' => [ 'value' => '10 feb 2012', 'type' => 'date', 'format' => 'EN' ],
'HtmlString' => ['value' => 'Hello world', 'type' => 'html', 'options' => ['encoding' => 'utf-8']]
];
```
Где ключ название переменной, а значения правила.
Да, придётся много писать, но более универсальное средство.
Да и делается это сколько угодно раз.
Чтобы вернуть всё в состояние переменных сделаем extract();
Profit, написали библиотеку для преобразований, а в представлении работаем уже с подготовленными данными.
```php
class Controller {
public function actionIndex(){
$data = Model::getData();
$preparedData = (new DataPreparator()) -> setData([ 'dateOne' => ['value' => $data['dateNewYork'], 'format' => 'EN' ] ])->getPreparedData();
$this->renderView('view', $preparedData );
}
}
```
Ставим прослойку между контроллером и представлением и обрабатываем нужные данные, так как нужно (экранирование, преобразование даты и прочее)?
Тем самым в представлении уже подготовленные данные, которые можно выводить как угодно.
Прослойка мигрирует из проекта в проект.
Даже в Bitrix можно воткнуть данное решение ( костылём правда ).
Так что я лично не вижу смысла в добавлении оператора, так как экранировать можно в миллионах разных вариаций и одним оператором это не решить.