Powered by Parser 3Создание сайтов - медленная ручная работа. Для облегчения кодирования html-документов в недрах российской студии Артемия Лебедева изобретено средство для автоматизации разработки веб-проектов под названием Parser. Совсем недавно вышла уже третья версия этого языка скриптования сайтов.
Parser ( По правде говоря, поначалу кажется, что в студии Артемия Лебедева "изобрели велосипед": PHP - это ведь тоже язык программирования, который тоже внедряется в html-код и выполняется перед отправкой браузеру. Но разница между Parser и PHP существует, и эта разница практическая. Если PHP давно уже претендует на статус универсального скриптового языка, то Parser - это узкоспециализированное средство, которое предназначено только для сайтостроительства и ни для чего больше. Такая узкоспециализированность есть благо уже лишь потому, что документации для изучения этого средства нужно меньше, чем для изучения того же PHP. А это при нынешнем постоянном дефиците времени однозначно радует. Не нужно забивать голову вещами, которые при практической разработке вряд ли понадобятся.
Первое знакомство с языком программирования принято начинать с простого примера. Не будем отступать от этой прекрасной традиции, но и просто учебный экспонат без практического применения нам не нужен. Возьмём в качестве практической задачи создание динамического меню сайта. Это весьма распространённая задача. В случае статических html-страничек при любом добавлении-удалении страницы нужно вручную переписывать навигационное меню в каждом html-файле. А это не есть научно-технический прогресс. При помощи Parser мы сейчас автоматизируем эту рутину. Предположим, наш сайт состоит из странички приветствия и странички прощания с пользователем. Для начала в корневом каталоге сайта создадим файл автоматизации auto.p, в котором напишем следующий код: @main_menu[] <ol> <li> <a href="hello.html>Hello, world!</a> <li><a href="bye.html>Bye, world!</a> </ol>Сейчас мы написали функцию или, говоря объектно-ориентированным языком, метод. Символ @ (собака) означает, что мы хотим описать некоторый блок, которым воспользуемся в дальнейшем. Следующее слово означает название функции: menu. В квадратных скобках могут быть параметры метода. Фигурные скобки для тела метода в Parser не используются, и метод определяется до следующей "собаки" или конца файла. В нашем примере функция просто выведет html-код меню и всё, достаточно в html-страницах вызвать в нужном месте наш метод через символ вызова "^": ^main_menu[]Теперь для изменения меню на всех страницах достаточно изменять только файл auto.p. Проще говоря, всё это напоминает конструктор "Лего". В файле auto.p создаём блоки-кирпичики, а потом из этих кирпичиков собираем наш сайт. Конечно же, синтаксис Parser довольно сильно отличается от того же PHP. Например, присвоение значения переменной происходит через квадратные скобки: $var[значение]Или ещё пример, условный оператор if употребляется без else: if(условие){если "истина"}{если "ложь"}Но к синтаксису быстро привыкаешь, и я даже нахожу его довольно удобным.
Parser является объектно-ориентированным языком. Это значит, что необходимым теоретическим минимумом для полного счастья при освоении Parser является знание про классы, объекты, параметры, методы. В Parser уже реализованы классы таких типов, как строка, картинка, таблица, cookie, дата, файл, формы ввода, хэши, почта. Вот для примера модифицируем пример с динамическим меню с использованием класса таблицы: @main_menu[] $sections[^table::create [{url name hello.html Hello,world! Bye.html Bye, world! }] <ol> ^sections.menu{ <li> <a href="$sections.url"> $sections.name</a> } </ol>Сначала создаем объект класса таблица $sections и инициализируем его через формат tab-delimited, то есть столбцы разделяются знаком табуляции, а строки - переводом каретки. После этого вызываем метод класса таблица menu, который автоматически переберёт строки данной таблицы и подставит нужные параметры. Не стоит здесь обращать внимание на некоторую громоздкость кода. Данную таблицу вполне можно было бы вынести в отдельный файл, и этот пример выглядел бы тогда более изящно. Объектный подход гораздо более удобен при работе с табличными данными и, особенно, с древовидными структурами данных XML. Parser через расширения поддерживает прозрачную работу с базами данных MySQL, Oracle, PgSQL, а также с любой СУБД через драйверы ODBC (в том числе. MS SQL, MS Access). Что же касается XML, то класс XDOC обеспечивает считывание файлов в XML-формате и запись в XML и HTML, а также XSLT-трансформацию. Одним словом, в Parser с классами всё классно.
Несколько слов об эксплуатации и администрировании этого языка скриптования html-страниц. Parser 3 доступен в нескольких вариантах: CGI-скрипт, модуль к веб-серверу Apache 1.3 и ISAPI расширение веб-сервера Microsoft Internet Information Server 4.0 или новее. Я испытывал самый простой способ через CGI-скрипт. То есть, копируем заранее скомпилированный модуль Parser в локальный каталог сайта для CGI-скриптов. И прописываем в файл .htaccess вашего сайта следующие блоки: # назначение обработчиком .html страниц AddHandler parser3-handler html Action parser3-handler /cgi-bin/parser3 # запрет на доступ к .p файлам, в основном, к auto.p <Files ~ "\.p$"> Order allow,deny Deny from all </Files>Есть и некоторые проблемы. В отличие от PHP, пакеты которого существуют не только для всех платформ, но и для любого дистрибутива Linux, Parser не так распространён, и в большинстве случаев модуль придётся собирать из исходников. А это давно уже не модно. У меня, например, 64-битную версию не получилось собрать. Ещё одним важным аспектом эксплуатации исполняемого кода является безопасность. Хакеры не дремлют, и в любом скрипте они будут искать дыры и бреши. Поэтому, установив на свой сайт этот Parser, хотелось бы спокойно спать по ночам, не опасаясь, что злохакер задефейсит главную страницу вашего супер-сайта про кошек. Но на данный момент разработчики студии Артемия Лебедева активно поддерживают проект и оперативно выкладывают обновлённые версии. Ну и что касается распространения и лицензирования, то данный продукт распространяется по лицензии GPL. Михаил АСТАПЧИК
Чтобы разместить новость на сайте или в блоге скопируйте код:
На вашем ресурсе это будет выглядеть так
Parser - средство для автоматизации разработки веб-проектов, изобретенное в студии Артемия Лебедева |
|