2013-09-05 3 views
0

Если бы я хотел использовать более сложный язык макросов для моей CMS в PHP, каким был бы подход? В настоящее время у меня есть преобразователь макросов с использованием preg_replace, где вы могли бы вызывать макросы на страницах cms, например: {# GetPageName #} или {# GetUserName | UserID = 9 #}, вы получите эту идею.PHP-язык макросов?

Целью было бы использовать его таким образом, чтобы вы могли назначать переменные и использовать такие выражения, как: {# if GetPageName == 'Home' {'Я домашняя страница'} #} или {# var Имя = GetCurrentUserName #}

Возможно ли подобное?

Благодарим вас за понимание.

ответ

0

Было бы возможно написать собственный макроязык или механизм шаблонов. Вопрос в том, сколько времени вы хотите инвестировать в этот проект и насколько амбициозны вы об этом вообще.

В большинстве случаев более продуктивно использовать то, что уже существует, вместо того, чтобы изобретать колесо. Таким образом, вы можете использовать и изучать сложную технологию, и как только у вас есть смысл, как это работает, вы сможете либо написать свою собственную версию, либо изменить то, что вы использовали до сих пор, и, возможно, вы в конечном итоге проект с открытым исходным кодом, который помогает всему сообществу.

Например, обратите внимание на Smarty, но не останавливайтесь на достигнутом. Проведите небольшое исследование, чтобы узнать, что доступно, и в какой степени оно подходит для вашего случая использования.

+0

Привет, спасибо за ответ. Итак, вы имеете в виду, что я должен прекратить использовать мой текущий «движок» макросов и попытаться использовать Smarty вместо этого? Что я имею в виду - Smarty - это что-то вроде макромодуля Im, которого я ищу? – Enn

+0

Ну, это действительно зависит от того, сколько вы хотели бы расширить свой макромод. Smarty - просто пример, который пришел мне на ум сразу же, когда я прочитал ваш пост. Я не знаю достаточно подробностей о вашей CMS, чтобы дать рекомендацию о том, что использовать, но вы можете ссылаться на [this] (http://en.wikipedia.org/wiki/Comparison_of_web_template_engines) сравнение шаблонов двигателей, чтобы узнать, есть тот, который соответствует вашим потребностям. – tim

+1

Я думаю, я не совсем понял, что такое Smarty, но если я смогу трансформировать свои макро-методы и использовать его вместе с преимуществами своего движка, я бы определенно дал ему шанс. Спасибо за всю информацию, я ценю это. – Enn

Смежные вопросы