Все конфигурационные файлы фреймворка являются файлами PHP. Кроме редких исключений, конфигурационный файл представляет собой PHP-код возврата именованного массива параметров следующего вида:
<?php
return array(
'param_1' => 'value_1',
'param_2' => 'value_2',
...
);
Все конфигурационные файлы приложения находятся в каталоге lib/config/ внутри каталога приложения.
Смена расположения или названия файла не допускается.
app.phpФайл app.php является главным конфигурационным файлом приложения.
В нём задаются название приложения, путь к иконке приложения, номер версии,
префикс таблиц приложения в базе данных, признак наличия мобильной версии приложения,
признак наличия фронтенда и другие параметры.
Пример файла app.php приложения Контакты:
<?php return array( 'name' => 'Contacts', 'img' => 'img/contacts.png', 'rights' => true, 'version' => '0.0.1', 'system' => true, );
Список некоторых возможных параметров в файле app.php:
name — название приложения, обязательный параметр. Название приложения
представляет приложение в общем списке приложений, отображаемом в бекенде. При отображении
на экране указанная строка будет использоваться механизмом gettext как ключ для перевода,
поэтому для мультиязычных приложений рекомендуется здесь указывать английское название приложения.img — путь к файлу иконки приложения от корня папки приложения.
Иконка, как и название, представляет приложение в общем списке приложений, отображаемом в бекенде.
Иконка приложения должна иметь размер 48x48 пикселей. Путь к файлу иконки является
необязательным параметром. В случае, когда этот параметр не указан, применяется правило определения
пути к файлу иконки по умолчанию: img/{APP_ID}.png.icon — содержит массив путей к файлам иконок приложения различного размера.
Прменяется вместо параметра img в тех случаях, когда иконки нескольких размеров представлены
отдельными файлами. Иконки 24х24 и 16х16 используются при интеграции приложения с приложением
Сайт. В случае отсутствия отдельных файлов иконок для уменьшенных вариантов
используется стандартная иконка 48х48, которая ресайзится браузером.'icon' => array(
48 => 'img/site.png',
24 => 'img/site24.png',
16 => 'img/site16.png'
),
prefix — префикс названий таблиц приложения в базе данных. Необязательный
параметр. Значение по умолчанию: {APP_ID}.rights — флаг, обозначающий, используются ли в приложении расширенные права разграничения
доступа. Необязательный параметр. Значение по умолчанию: false (подробнее о системе
разграничения прав см. раздел «Права доступа»).frontend — флаг, обозначающий, есть ли у приложения фронтенд. Необязательный параметр.
Значение по умолчанию: false.mobile — флаг, обозначающий, есть ли у приложения мобильная версия. Необязательный параметр.
Значение по умолчанию: false.system — флаг, обозначающий, является ли приложение общесистемным. Необязательный параметр.
Значение по умолчанию: false.version — номер версии приложения. Необязательный параметр.routing.phpФайл routing.php задает правила маршрутизации HTTP-запросов на фронтенд внутри приложения.
Пример файла routing.php приложения Блог:
<?php return array( 'post' => array( 'url' => 'post/[i:id]/?', 'module' => 'frontend', 'action' => 'post', ), 'addComment' => array( 'url' => 'comment/add/[i:id]', 'module' => 'frontend', 'action' => 'addComment', ), 'rss' => array( 'url' => 'rss/?', 'module' => 'frontend', 'action' => 'rss' ), 'posts' => array( 'url' => '', 'module' => 'frontend', ), 'post_url' => array( 'url' => '[s:url]/?', 'module' => 'frontend', 'action' => 'post' ), );
Подробнее о маршрутизации фронтенда см. раздел «Маршрутизация запросов на фронтенд».
logs.phpФайл logs.php задает список действий пользователей приложения, записываемых
в системный лог.
Пример файла logs.php приложения Стикеры:
<?php return array( 'board_add' => array(), 'board_edit' => array(), 'board_delete' => array(), 'sticky_add' => array(), 'sticky_edit' => array(), 'sticky_move_to_board' => array(), 'sticky_delete' => array(), );
Подробнее см. раздел «Журнал действий пользователя».
factories.phpВ случаях когда для приложения требуется переопределение некоторых системных классов (например,
когда в приложении используется альтернативный шаблонизатор, отличный от системного Smarty, или если в приложении
бекенде реализован свой диспетчер запросов бекенда), то параметры переопределений задаются в
файле factories.php.
Пример файла factories.php, переопределяющего для приложения параметры шаблонизатора
Smarty (например, инструкция использования двойные фигурных скобок вместо одинарных):
<?php
return array(
'view' => array('waSmarty3View', array(
'left_delimiter' => '{{',
'right_delimiter' => '}}',
)),
);
Конфигурирование расширенных прав поисводится путем объявления класса, наследуемого от системного
абстрактного класса waRightConfig. PHP-файл класса должен иметь имя вида
{APP_ID}RightsConfig.class.php. Например, файл настройки детализированных прав в приложении
guestbook — guestbookRightConfig.class.php:
<?php
class guestbookRightConfig extends waRightConfig
{
public function init()
{
$this->addItem('delete', 'Can delete posts', 'checkbox');
}
}
Подробнее о настройке прав см. раздел «Права доступа».
При разработке или установке приложения затрагиваются некоторые общесистемные конфигурационные файлы.
Эти файлы находятся в каталоге wa-config/.
apps.phpФайл apps.php содержит список установленных приложений и управляет
«видимостью» этих приложений в бекенде.
Пример файла apps.php:
<?php return array( 'contacts' => true, 'stickies' => true, 'guestbook' => true, 'installer' => true );
APP_ID установленных приложений являются ключами именованного массива. Значение true
для ключа является инструкцией системе отображать икноку и название приложения в бекенде фреймворка.
routing.phpОбщесистемный файл маршрутизации распределяет адресное пространство фронтенда между приложениями.
Пример системного файла routing.php:
<?php
return array(
'default' => array(
'blog' => array(
'url' => 'blog*',
'app' => 'blog'
),
'shop' => array(
'url' => 'shop*',
'app' => 'shop'
),
'guestbook' => array(
'url' => 'guestbook/*',
'app' => 'guestbook',
'module' => 'frontend'
),
'default' => array(
'url' => '*',
'app' => 'site',
'module' => 'frontend'
)
)
);
Подробнее о маршрутизации фронтенда см. раздел «Маршрутизация запросов на фронтенд».
db.phpФайл db.php хранит настройки подключения к базе данных.
Пример файла db.php:
<?php return array( 'default' => array( 'type' => 'mysql', 'host' => 'localhost', 'user' => 'wafw', 'password' => 'super-parol', 'database' => 'wafw' ), );
config.phpФайл config.php хранит некоторые системные настройки.
Пример файла config.php:
<?php return array( 'debug' => true, 'backend_url' => 'admin', 'mod_rewrite' => true, );
Список некоторых возможных параметров в файле config.php:
debug — допустимые значения: true / false. Включает / выключает отображение подробной информации об
ошибках выполнения скриптов. Для разработки приложений рекомендуется установить этот параметр true.backend_url — путь к бекенду от корня установки фреймворка.
Значение по умолчанию: webasyst.mod_rewrite — допустимые значения: true / false. Определяет, установлен ли на сервере
mod_rewrite. Этот параметр определяется автоматически на этапе установки.