3.2 Приложение
- 3.2.1 Обзор
- 3.2.2 Конфигурационный файл
- 3.2.3 Класс приложения
3.2.1 Обзор
Структура типичного приложения:
- MZZ_app/
- db/ — дампы базы данных приложения
- files/ — файлы, хранимые модулем
fileManager - modules/ — модули приложения
- routes/ — роуты приложения
- templates/ — шаблоны
- tmp/ — временные файлы
- www/ — корневая директория приложения
- css/ — файлы стилей
- images/ — файлы изображений
- js/ — файлы javascript
- index.php — точка входа в приложение, именно этому файлу передаётся управление
- application.php — класс приложения
- config.php — конфигурационный файл
3.2.2 Конфигурационный файл
Типичный конфигурационный файл (config.php):
<?php /** * Абсолютный путь до сайта. * Если mzz установлен в корень веб-сервера, оставьте поле пустым * Правильно: /mzz, /new/site * Неправильно: site1, site1/, /site1/ */ define('SITE_PATH', ''); define('COOKIE_DOMAIN', ''); define('DEBUG_MODE', true); // Путь до директории system в mzz define('SYSTEM_PATH', realpath(dirname(__FILE__) . '/../system/')); // Идентификатор записи в БД для неавторизированных пользователей define('MZZ_USER_GUEST_ID', 1); // Идентификатор группы, для которой ACL всегда будет возвращать true (т.е. предоставит полный доступ) define('MZZ_ROOT_GID', 3); require_once SYSTEM_PATH . DIRECTORY_SEPARATOR . 'systemConfig.php'; // Дефолтный язык приложения systemConfig::$i18n = 'ru'; // Включаем мультиязычность systemConfig::$i18nEnable = true; // Устанавливаем дефолтную кодировку для выдачи ini_set('default_charset', 'utf-8'); // Настройка соединения с БД приложения systemConfig::$db['default']['driver'] = 'pdo'; systemConfig::$db['default']['dsn'] = 'mysql:host=localhost;dbname=mzz'; systemConfig::$db['default']['user'] = 'root'; systemConfig::$db['default']['password'] = ''; systemConfig::$db['default']['options'] = array(); systemConfig::$db['default']['options']['init_query'] = 'SET NAMES utf8'; // Установка переменных окружения systemConfig::$appName = 'demo'; systemConfig::$appVersion = '1.0-alpha'; systemConfig::$enabledModules = array('captcha', 'comments', 'fileManager', 'menu', 'news', 'page'); systemConfig::$pathToApplication = dirname(__FILE__); systemConfig::$pathToWebRoot = systemConfig::$pathToApplication . '/www'; systemConfig::$pathToTemp = systemConfig::$pathToApplication . '/tmp'; systemConfig::$pathToConfigs = systemConfig::$pathToApplication . '/configs'; // Настройка дефолтного мейлера systemConfig::$mailer['default']['backend'] = 'PHPMailer'; systemConfig::$mailer['default']['params'] = array('html' => true, 'smtp' => true, 'smtp_host' => 'localhost'); /** * Здесь могут находиться другие системные настройки приложения, * такие как настройки кеширования, шаблонизатора, сессий и др. */ systemConfig::init(); ?>
Опишем параметры конфигурационного файла:
| Директива | Описание |
|---|---|
define('DEBUG_MODE', ...); |
Режим отладки. |
define('SYSTEM_PATH', ...)); |
Абсолютный путь до system каталога MZZ. |
systemConfig::$appName systemConfig::$appVersion |
Имя и версия вашего приложения. |
systemConfig::$pathToApplication |
Путь до каталога вашего приложения. |
systemConfig::$pathToWebRoot |
Путь до web-root вашего приложения. |
systemConfig::$pathToTemp |
Путь до tmp каталога приложения. |
systemConfig::$pathToConf |
Путь до каталога с конфигурационными файлами приложения. |
3.2.3 Класс приложения
Типичный класс приложения (application.php):
<?php class application extends core { } ?>
Этот класс ответственен за запуск приложения и наследуется от базового класса приложения core.
В этом классе могут быть переопределены методы, ответственные за запуск приложения,
компановку фильтров,
сборку композитного тулкита,
загрузку базовых классов
и проверку системы на совместимость с MZZ и подключенными модулями.
В обычных случаях не требуется никакого вмешательства в код этого класса.