Работа с системными классами и объектами
Под системными классами и созданными их объектами в InstantCMS подразумеваются все файлы в директории /system/core/
. Их полный список и назначение рассмотрен в отдельной статье.
Все системные классы начинаются с символов cms
, например, cmsMailer, cmsTemplate, cmsUser, cmsCore и так далее.
В версиях InstantCMS выше 2.4.0 в своих контроллерах больше нет надобности получать синглтоны или вручную создавать объекты указанных системных классов. Достаточно обращаться к ним, как к свойствам объекта контроллера по схеме cmsCore
— $this→cms_core
. Т.е. берем название требуемого класса, находим первую заглавную букву в середине слова, делаем ее строчной и ставим перед ней знак подчеркивания.
Обратите внимание! Подобные вызовы доступны из контекста контроллера, т.е. из его фронтэнда, бэкенда и экшенов.
Например, объект ядра в контроллере можно получить так:
$core = cmsCore::getInstance();
И далее уже использовать переменную $core для обращения к объектам ядра:
$uri_action = $core->uri_action;
Однако, можно опустить получение синглтона (в данном случае) и использовать упрощенную конструкцию, а движок сам подключит требуемый объект при первом обращении и сохранит его для дальнейшего использование в свойство:
$uri_action = $this->cms_core->uri_action;
Точно также необходимо действовать и с другими объектами, например:
Название класса | Обращение к объекту в конроллере |
---|---|
cmsConfig | $this->cms_config |
cmsUser | $this->cms_user |
cmsTemplate | $this->cms_template |
cmsUploader | $this->cms_uploader |
И так далее. Вы всегда гарантировано можете обратиться к этим объектам, их файлы автоматически подгрузятся, создастся объект и присвоится к свойству.