Объект MV
Во всех шаблонах для доступа к моделям и другим функциям используется объект $mv.
Собственные публичные свойства
- $root_path - путь (URL) до корня сайта (на рабочем домене обычно '/'), параметр APP_FOLDER в файле .env
- $media_path - путь (URL) от корня сайта до папки media
- $views_path - абсолютный путь от корня файловой системы до папки с шаблонами views
- $include_path - абсолютный путь от корня файловой системы до сайта, используется для функций include и require
- $domain - доменное имя из параметра APP_DOMIAN файла .env
Данные свойства тесно связаны с разделом Системные настройки.
Собственные методы объекта $mv
- redirect() - перенаправление на другой URL внутри текущего домена, подробнее в разделе Редиректы
- reload() - перегрузка текущего URL
- display404() - отображение страницы 404 ошибки и завершение работы скрипта
- checkUrlPart($index) - проверка URL на наличие нужной части, подробнее в разделе Объект класса Router
- findRecordByUrl($model, $url_field = '', $conditions = []) - поиск страницы в базе данных по параметрам: названию модели, полю с URL (slug) если такое имеется и дополнительным условиям поиска по конструктору запросов
Объекты внутри объекта $mv
- registry - доступ к настройкам из конфигурационных файлов, подробнее в разделе Системные настройки
- router - маршрутизатор, Объект класса Router
- db - менеджер базы данных, выполняющий Прямые запросы к базе данных
- cache - кэширование в шаблонах (если включено в настройках)
Все активные модели и плагины доступны в объекте $mv по их названиями.
Обращение к моделям и плагинам через объект $mv позволяет создавать нужные объекты только по мере надобности и повышает производительность.
//Поиск записей моделей в базе данных (определение текущей страницы по URL из двух частей)
//Если запись не найдена автоматически будет показана 404 страница
//URL вида /news/421 или /news/special-event
//В модели News должно быть поле типа url c названием slug
$record = $mv -> findRecordByUrl('News', 'slug', ['active' => 1]);
//Если URL только вида /news/834 и поля 'active' в модели нет
$record = $mv -> findRecordByUrl('News');
//Подключение части шаблона
include $mv -> views_path.'main-header.php';
include $mv -> views_path.'parts/left-column.php';
//Использование встроенных объектов
$mv -> db -> getCell("SELECT `email` FROM `users` WHERE `id`='236'");
//Доступ к моделям
echo $mv -> Pages -> displayMenu(74);
$user = $mv -> Users -> find(['email' => 'aaa@bbb.cc', 'active' => 1]);
//Доступ к плагинам
$mv -> ShoppingCart -> addProduct(34, 1) -> recountCart();
//Доступ к данным простой модели
echo $mv -> Options -> phone;
//Редирект
$mv -> redirect('/home/page');
//Перезагрузка страницы с дополнительными GET параметрами
$mv -> reload('?success')
//Переход на 404 ошибку
$mv -> display404();
Предыдущий раздел
Объект класса Router