Мне нужно написать базовый движок сценариев / шаблонов, который будет работать под PHP. В идеале я мог бы смешать свой собственный язык разметки с (X) HTML-шаблоном и запустить документ через анализатор на стороне сервера, чтобы динамически заменить мою собственную разметку на (X) HTML, подаваемый из базы данных.
К сожалению, несмотря на все мои знания PHP и сценариев, я не совсем уверен, с чего начать. Моим первым инстинктом было запустить весь документ через какой-то синтаксический анализатор регулярных выражений и сопоставить мою пользовательскую разметку с конкретными функциями PHP ... но это кажется мне немного медленным и сложным.
Какие существуют ресурсы / учебные пособия / примеры, которые могут указать мне правильное направление? Для сравнения, мне действительно нравится новый движок шаблонов Razor для .NET MVC ... Я не хочу полностью использовать его для проекта PHP, но создание чего-то подобного было бы замечательно.
Обновление
ОК, позвольте мне уточнить мое объяснение немного подробнее ... Я занимаюсь разработкой веб-сайтов для WordPress. Многие из моих клиентов хотят настроить свои сайты, но убегают всякий раз, когда я начинаю говорить о PHP. Это язык сценариев, который выглядит слишком сложным для непрофессионала, чтобы даже заинтересоваться им.
Что я хочу сделать, так это создать собственную форму разметки специально для WordPress. Таким образом, вместо того, чтобы иметь вызовы функций PHP (get_header()
и get_footer()
и if(has_posts())
...) в файле темы, у вас будет XML с пространством имен (<wpml:header />
и <wpml:footer />
и <wpml:loop> ... </wpml:loop>
), который переводится в тоже самое. Было бы лучше отделить ваши файлы шаблонов от серверного скрипта (есть несколько тем, которые помещают целые функции PHP непосредственно в файлы шаблонов PHP !!!), и не-разработчикам было бы легче начать работать с настройкой темы WordPress.
Имея это в виду, уже предложенные решения TWIG и Mackrell определенно поддерживают идею встраивания "слепков" скриптов в файл, но на самом деле они не помогают мне разобрать пользовательскую разметку XML / XHTML в нечто, распознаваемое код на стороне сервера.
Итак ... с чего начать при создании нового процессора разметки на стороне сервера?