Как я могу автоматически экранировать данные в представлениях с Kohana 2 или KO3 - PullRequest
0 голосов
/ 22 октября 2010

Каков наилучший способ получить данные из моделей или контроллеров, чтобы легко и безопасно отображать их в представлениях.Кажется излишним использование html :: specialchars ($ varname) для каждой переменной данных.Это также может вызвать проблемы, если программист забывает «экранировать» данные.

Я также столкнулся с проблемами экранирования объектов ORM внутри циклов.

Ответы [ 2 ]

1 голос
/ 23 октября 2010

Я написал предложение модуля Twig , и по умолчанию он автоматически экранирует все данные.Вы также можете посмотреть на Kostache .Это система представления на основе классов, которая выполняет автоматическое экранирование.

Относительно вашего комментария:

Есть ли способ сделать это непосредственно из модели

Вы не хотите экранировать данные здесь, потому что экранированные данные HTML не имеют смысла во всех форматах вывода, например: JSON и XML.

Выполнить побег на уровне представления.

0 голосов
/ 22 октября 2010

Один из способов добиться этого - использовать шаблонизатор, такой как Twig, для представлений.(см. модуль KO3 http://github.com/ThePixelDeveloper/kohana-twig)

Затем вам просто нужно загрузить расширение Escaper:

Twig_Extension_Escaper: Добавляет автоматическое экранирование выходных данных и возможность экранировать / скрывать блоки кода.

Ссылка: http://www.twig -project.org / book / 03-Twig-for-Developers

...