Инструменты пользователя

Инструменты сайта


eaze:pages.xml

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
eaze:pages.xml [2011/09/12 00:12]
sergeyfast
eaze:pages.xml [2012/04/01 22:24] (текущий)
sergeyfast
Строка 5: Строка 5:
 Правила выполняются последовательно. Если первым идет правило с регулярным выражением “(.*)”, а вторым – “/”, то второе правило никогда не выполнится,​ так как его перекрывает первое. Правила выполняются последовательно. Если первым идет правило с регулярным выражением “(.*)”, а вторым – “/”, то второе правило никогда не выполнится,​ так как его перекрывает первое.
  
-Для удобства правила можно определять в группы. А в группах определять глобальные действия до и после обработки url по найденному правилу. ​+Для удобства правила можно определять в группы. А в группах определять глобальные действия до (атрибут **//​boot//​**) ​и после ​(атрибут **//​shutdown//​**) ​обработки url по найденному правилу. ​
  
 ===== Описание файла ===== ===== Описание файла =====
Строка 65: Строка 65:
 </​sites>​ </​sites>​
 </​code>​ </​code>​
 +
 +
 +===== Виртуальные экшены и цепочки вызовов =====
 +
 +Появилась поддержка цепочек вызовов экшенов (можно переопределять для разных хостов — это слегка модифицированные virtualActions).
 +
 +==== Пример конфига ====
 +<code xml>
 +<​sites>​
 +    <site name="​Project">​
 +        <​hosts>​
 +            <host name="​*">​
 +                <action name="​Chains.GetCommonBlocks">​Project.Site.GetLastNews,​ Project.Site.GetRandPerson,​ Project.Site.ProcessDelayedItems</​action>​
 +            </​host>​
 +        </​hosts>​
 +        <​pages>​
 +            <page uri="/"​ boot="​Chains.GetCommonBlocks,​ Project.Site.Test">​
 +        </​pages>​
 +    </​site>​
 +</​sites> ​
 +</​code>​
 +
 +
 +===== Препроцессинг статических методов,​ свойств и констант в pages.xml =====
 +
 +Иногда хочется избавиться от хардкода урлов в pages.xml. В trunk появилась возможность в атрибуте ''​uri''​ тега ''​page''​ использовать статические методы,​ свойства или константы.
 +
 +  Но не стоит увлекаться таким вариантом. Это понижает читаемость кода.
 +
 +Механизм работы следующий. При при изменении содержания ''​pages.xml''​ создается новая кешированная версии ''​pages.xml''​ в папке ''​cache''​. В момент создания этого кешированной версии происходит замена соответствующих конструкций на результат их выполнения. В uri могут быть следующие варианты
 +
 +<code xml>
 +<page uri="/​{PageManagerTest::​UrlPrefix}/"​ />
 +<page uri="/​{PageManagerTest::​$UrlPrefix}/"​ />
 +<page uri="/​{PageManagerTest::​UrlPrefix()}"​ />
 +<page uri="/​{PageManagerTest::​UrlPrefix()}/​{PageManagerTest::​UrlPrefix}/​combined/​{2}/"​ />
 +</​code>​
 +
 +Где ''​PageManagerTest::​UrlPrefix''​ - константа,​ ''​$UrlPrefix''​ - статическое свойство,​ ''​UrlPrefix()''​ - статический метод.
 +
 +Данный метод не работает на страницах с ошибками (404.xml, 403.xml и т.д.).
eaze/pages.xml.1315771976.txt.gz · Последние изменения: 2011/09/12 00:12 — sergeyfast