Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия | Последняя версия Both sides next revision | ||
eaze:sites.xml [2011/09/12 00:11] sergeyfast |
eaze:sites.xml [2011/11/11 14:07] sergeyfast |
||
---|---|---|---|
Строка 88: | Строка 88: | ||
</sites> | </sites> | ||
</code> | </code> | ||
+ | |||
+ | ===== Глобальный обработчик для неопределенного сайта ===== | ||
+ | Иногда задача стоит таким образом, что без использования поддоменов не обойтись, например обработка <username>.mysite.ru | ||
+ | Если в теге <hostname> будет стоят символ *, то возьмется именно он, если больше подходящих нет. | ||
+ | Помните, что * может использоваться только один раз и только в самом конце файла sites.xml. | ||
+ | |||
+ | Рассмотрим пример обработки таких ситуаций: | ||
+ | |||
+ | <code xml> | ||
+ | <host name="any"> | ||
+ | <hostname>*</hostname> | ||
+ | <settings> | ||
+ | <modules> | ||
+ | <anySiteManager class="AnySiteManager" /> | ||
+ | </modules> | ||
+ | </settings> | ||
+ | </host> | ||
+ | </code> | ||
+ | |||
+ | В модуле AnySiteManager можно переопределить текущее соединение с БД по умолчанию или, скажем, некоторые пути. | ||
+ | <code php> | ||
+ | <?php | ||
+ | class AnySiteManager { | ||
+ | |||
+ | public static function Init( DOMNodeList $params ) { | ||
+ | if ( ConnectionFactory::Remove() ) { | ||
+ | ConnectionFactory::Add( array( | ||
+ | 'driver' => 'MySql' | ||
+ | , 'dbname' => 'default_connection' | ||
+ | )); | ||
+ | } | ||
+ | |||
+ | Site::$Paths['daemons://'] = '/int/mydaemons/daemons'; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </code> | ||
+ | |||
+ | |||
+ |