Инстанцирование объекта происходит в файле /netcat/system/index.php:
<?php // получаем объект nc_core $nc_core = nc_Core::get_object(); // загрузка дефолтных расширений $nc_core->load_default_extensions();
Во второй строке вызывается статический метод get_object() класса nc_Core, который можно использовать в любом месте в системе, чтобы получить объект $nc_core. При повторном вызове метода будет возвращён уже существующий объект.
Подключение вышеописанного файла происходит в файле /netcat/connect_io.php, который загружается при любых операциях с системой, следовательно, и объект $nc_core всегда доступен в системе.
В четвёртой строке примера вызывается метод load_default_extensions(), который загружает основные расширения, необходимые для корректной работы с объектом.
Все классы (кроме nc_Db и nc_System) в папке /netcat/system/ наследуют один абстрактный класс nc_System, который необходим для связи различных классов между собой и взят за основание.
Примечание! Все файлы классов названы по следующему шаблону — nc_имякласса.class.php. Имя класса в названии файла записано в нижнем регистре символов, в то время как название класса внутри файла написано с заглавной буквы — nc_Имякласса.
Сам объект $nc_core, по сути, ничем не отличается от своих расширений, например, класса nc_Input. Но для удобства использования расширения не инстанцируются каждое по отдельности, а все объекты расширений попадают в объект $nc_core. Доступ к объекту расширения осуществляется следующим образом:
// get input extension $nc_core->input;
Расширение nc_Essence предназначено для работы со стандартными сущностями системы — Catalogue, Subdivision, Sub_Class, Class-Component, Template... Так как каждая сущность отличается от остальных, то для удобства они поделены на классы расширения nc_Essence и располагаются в папке essences. Доступ к объекту сущностей осуществляется следующим образом:
// get input extension $nc_core->сущность; // for example $nc_core->subdivision;
У каждого класса расширения есть определённые задачи и набор методов для их решения. Рассмотрим все, которые есть на данный момент.