/
3.2.2. Регистрация классов
  • Verified
  • 3.2.2. Регистрация классов

    Для того, чтобы использовать тот или иной класс в K4 его необходимо сначала зарегистрировать. Регистрация класса - это процесс, в результате которого K4 становиться известно:

    • название класса;

    • где находиться файл, в котором класс описан;

    • pseudo, который будет использоваться для обращения к объекту класса.

    pseudo - это ключевое слово, по которому можно в последствии из любого места в K4 получить объект класса, зарегистрированного под этим pseudo.

    Получение объекта

    Получить объект можно при помощи метода kApplication::recallObject, например вот так:

    $price =& $this->Application->recallObject('price'); /* @var $price kDBItem */

    Для того, чтобы в Zend Studio работала автоматическая подсказка кода (auto-complete) нужно после получения объекта написать специальным образом оформленный комментарий. В общем случае формат этого комментария таков:

    /* @var $variable_name ClassName */

    Регистрация класса

    В конфигурационном файле есть ряд опций со схожим форматом, служащих для регистрации классов в K4:

    Название опции

    Используемый pseudo

    Название опции

    Используемый pseudo

    ItemClass (array)

    <prefix>

    ListClass (array)

    <prefix>_List

    EventHandlerClass (array)

    <prefix>_EventHandler

    TagProcessorClass (array)

    <prefix>_TagProcessor

    RegisterClasses (array)

    Задаётся в ручную в ключе "pseudo".

    В приведённой выше таблице "<prefix>" это значение опции Prefix в конфигурационном файле. Значение каждой из выше написанных опций (кроме RegisterClasses) является массивом следующего вида:

    Array ( 'class' => 'ClassName', 'file' => 'FileName', 'build_event' => 'BuildEventName', 'require_classes' => 'RequiredClassName' )

    Все ключи в данном массиве, кроме require_classes, обязательные. Правда значения некоторых из ключей могут быть пустыми.

    Название

    Описание

    Название

    Описание

    class (string)

    Название регистрируемого класса (название нового или системного класса).

    file (string)

    Название файла, содержащего описание класса (по одному файлу на один класс); если указано пустое значение то подразумевается, что используется системный класс.

    build_event (string)

    Событие из обработчике событий, использующееся для инициализации экземпляров регистрируемого класса (т.е. объекта). Другими словами это конструктор класса, который находиться в обработчике событий.

    require_classes (mixed)

    Название класса(-ов), описание которого должно быть загружено перед использованием данного класса. Если указывается один класс, то значение данного ключа может быть строкой. Если указывается несколько классов, то значение данного ключа будет массивом.

    Значение всех ключей (кроме build_event) этого массива должно подчиняться правилу назначения имён.

    Подмена классов

    Бывают случаи, когда требуется заменить один или более используемых в системе классов. Для нужно использовать ключ RegisterClasses. При регистрации или подмене класса в ключе RegisterClasses требуется указывать дополнительный ключ pseudo. В данном случае его нужно указывать, т.к. он не может быть автоматически угадан (как во всех ранее описанных случаях).

    • При подмене класса нужно указывать тот "pseudo", с которым оригинальный (т.е. подменяемый) класс был изначально зарегистрирован. Этот "pseudo" можно узнать, если найти в проекте тот PHP-файл, в котором был изначально зарегистрирован требуемый класс.

    • Регистрация подменённого класса должна происходить после регистрации оригинального класса. Это условие будет автоматически выполняться, если подмена класса описана в файле "custom/units/sections_config.php".

    Стандартные классы

    Доступны следующие стандартные классы:

    • kDBItem - класс, для работы с одной записью в базе;

    • kDBList - класс для отображения содержания таблицы из базы (фильтрация, per-page и т.п.);

    • kDBEventHandler - класс для обработки стандартных событий из списков и форм редактирования;

    • kDBTagProcessor - класс для обработки стандартных тэгов, использующихся для вывода информации;

    • kEventHandler - базовый класс для всех обработчиков событий (использовать только в целях экономии оперативной памяти);

    Для стандартных классов значение ключа file должно быть пустым.

    Related content

    3.1. Применение Компонентов
    3.1. Применение Компонентов
    More like this
    2.5.1. Работа с классом kDBItem
    2.5.1. Работа с классом kDBItem
    More like this
    2.4. Переменная окружения
    2.4. Переменная окружения
    More like this
    2.6.1. Обработка XML документов
    2.6.1. Обработка XML документов
    More like this
    2.2. Протекание Процессов в Приложении
    2.2. Протекание Процессов в Приложении
    More like this
    3.2.1. Конфигурационные файлы
    3.2.1. Конфигурационные файлы
    More like this