21.by - Новости Беларуси. Последние новости Беларуси из разных источников. Последние новости мира.

Powered by Parser 3

26.08.2009 09:50 — |  
Размер текста:
A
A
A

Источник материала:

Язык скриптования сайтов

Создание сайтов - медленная ручная работа. Для облегчения кодирования html-документов в недрах российской студии Артемия Лебедева изобретено средство для автоматизации разработки веб-проектов под названием Parser. Совсем недавно вышла уже третья версия этого языка скриптования сайтов.


Узкая специализация

Parser (www.parser.ru) является языком программирования, существенно упрощающим и систематизирующим создание веб-сайтов. В html-страницы внедряются специальные инструкции, обрабатываемые программным модулем, прежде чем пользователь увидит страницу в браузере. При использовании Parser автор сайта получает в своё распоряжения переменные, циклы, условия и т.д., всё то, чего не достаёт в стандартном html.

По правде говоря, поначалу кажется, что в студии Артемия Лебедева "изобрели велосипед": PHP - это ведь тоже язык программирования, который тоже внедряется в html-код и выполняется перед отправкой браузеру. Но разница между Parser и PHP существует, и эта разница практическая. Если PHP давно уже претендует на статус универсального скриптового языка, то Parser - это узкоспециализированное средство, которое предназначено только для сайтостроительства и ни для чего больше.

Такая узкоспециализированность есть благо уже лишь потому, что документации для изучения этого средства нужно меньше, чем для изучения того же PHP. А это при нынешнем постоянном дефиците времени однозначно радует. Не нужно забивать голову вещами, которые при практической разработке вряд ли понадобятся.


Hello, Parser!

Первое знакомство с языком программирования принято начинать с простого примера. Не будем отступать от этой прекрасной традиции, но и просто учебный экспонат без практического применения нам не нужен. Возьмём в качестве практической задачи создание динамического меню сайта. Это весьма распространённая задача. В случае статических 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 - средство для автоматизации разработки веб-проектов, изобретенное в студии Артемия Лебедева
 
 
 

РЕКЛАМА

Архив

РЕКЛАМА


Все новости Беларуси и мира на портале news.21.by. Последние новости Беларуси, новости России и новости мира стали еще доступнее. Нашим посетителям нет нужды просматривать ежедневно различные ресурсы новостей в поисках последних новостей Беларуси и мира, достаточно лишь постоянно просматривать наш сайт новостей. Здесь присутствуют основные разделы новостей Беларуси и мира, это новости Беларуси, новости политики, последние новости экономики, новости общества, новости мира, последние новости Hi-Tech, новости культуры, новости спорта и последние новости авто. Также вы можете оформить электронную подписку на новости, которые интересны именно вам. Таким способом вы сможете постоянно оставаться в курсе последних новостей Беларуси и мира. Подписку можно сделать по интересующим вас темам новостей. Последние новости Беларуси на портале news.21.by являются действительно последними, так как новости здесь появляются постоянно, более 1000 свежих новостей каждый день.
Яндекс.Метрика