- PVSM.RU - https://www.pvsm.ru -
Было очень приятно совершенно случайно обнаружить сайт этого фреймворка [1] во второй половине рабочего дня. Новые фреймворки появляются редко, а тем более редко попадаются механизмы, которые нравятся с первого взгляда. На Хабре описания Nette я не нашел, поэтому поспешил поделиться своей находкой с Вами.
Во-первых, мне сразу приглянулось название. Nette. Это почти как Latte. Только Nette. Как оказалось позднее, есть и Latte — собственный встроенный подающий надежды шаблонизатор. Ого.
Во-вторых, при беглом осмотре сразу создалось впечатление чего-то передового и свежего (почти как мысли команды PHP, встраивающей в язык гениальной красоты трейты и позабывшей о скучном юникоде):
В-третьих, как оказалось, Nette — это «национальный фреймворк». Нечасто встретишь такое словосочетание. Фреймворк написан чешским программистом Давидом Грудлем. И написан, как оказывается, довольно давно – в 2004-м году. Однако, в открытый доступ код попал только в 2008-м. В соответствии с информацией на сайте, Nette является самым используемым и популярным PHP фреймворком в Чехии. В частности, на его основе сделан сайт президента страны – Вацлава Клауса. Довольно громко.
Нужно сказать, что в описании фреймфорка встретилось немало любопытных и забавных, а главное, свежих вещей, которые хотелось бы изучить подробнее. Но так как это не обзор фреймворка, а только первое знакомство (а кроме того сейчас уже 2 ночи), я ограничусь только основными моментами, которые я смог уяснить и которыми успел зантересоваться.
Предусмотрена валидация как на стороне клиента (javascript), так и на стороне сервера. Присутствует встроенная защита от атак (XSS и CSRF). Несколько доступных режимов рендеринга формы. Интернационализация (i18n) позволяет создавать мультиязычные формы.
В целом, по функциональности и конструкциям похоже на формы Zend Framework, но как-то более легко и свежо. Вместо страшных зендовских декораторов – более понятные на первый взгляд wrappers [2].
Latte [3]. С хитрыми макросами, встроенными в HTML-теги. На вид, гораздо более читаемо, чем нативный PHP.
Важно, что шаблонизатор эскейпит переменные по умолчанию при выводе на страницу, что не позволяет забыть об этом. Упоминается некоторая умная технология Context-Aware Escaping [4], позволяющая автоматически корректно эскейпить различные переменные. Собственно, громких названий в этом фреймфорке хватает. Но, может, это не так и страшно.
Шаблонизатор должен быть быстрым, так как компилит шаблоны в чистый PHP код и сохраняет их в кэше.
В целом, шаблонизатор более простой и понятный, по сравнению с Smarty.
Удобные конфиги. Предлагается их писать в формате NEON [5]. Весьма любопытный формат, вероятно, добавит читаемости огромных деревьям конфигурации. Конфиги можно делить на файлы и мерджить с приоритетами. Одна из черт, которая допускает использование этого фреймворка в больших проектах.
Механизм для сессий с поддержкой секций во избежание конфликтов имен в больших проектах. Проработанная система кэширования, с разными вариантами хранения значений, тегами и приоритетами. Автолоадер, которому можно указать директории, которые он просканирует на предмет наличия классов и интерфейсов и сохранит эту информацию в кэше.
Надо сказать, первое впечатление иногда бывает обманчивым. Я искренне надеюсь, что это не тот случай.
Сайт фреймворка — http://nette.org/en/ [1]
Автор: TedMosby
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/framework/3080
Ссылки в тексте:
[1] сайт этого фреймворка: http://nette.org/en/
[2] wrappers: http://doc.nette.org/en/forms#toc-form-appearance
[3] Latte: http://doc.nette.org/en/templating#toc-latte
[4] Context-Aware Escaping: http://doc.nette.org/en/templating#toc-context-aware-escaping
[5] NEON: http://ne-on.org
Нажмите здесь для печати.