Основной класс

Основной рабочий файл хака содержит класс, который отвечает за параметры конфигурации, загрузку модулей и библиотек, подключение шаблонов, стилей и скриптов. Класс может быть расширен любыми дополнительными функциями.

Встроенные функции класса

Обращение к методам и полям класса производится вызовом:

$core->hack->hackname->funcname()

Вместо hackname указывается название класса, вместо funcname - соответствующая функция или поле.

$core->hack->(name)->conf[$field]

Массив с конфигурацией хака, используйте только для чтения.

$core->hack->(name)->conf( $field, $val = null )

Возвращает или изменяет конфигурацию хака в зависимости от параметров:

  • При вызове без параметров, возвращает весь массив конфигурации целиком.
  • При вызове с одним параметром $field - возвращает значение конкретного поля.
  • При вызове с параметрами $field и $val, присваивает полю $field значение $val.

$core->hack->(name)->(library)

Загружает и возвращает соответствующую библиотеку хака. Загрузка и инициализация библиотеки происходит один раз. Пример использования:

$core->hack->proxy->checker->run( 123 );

$core->hach->(name)->mod( $name, $func = false )

Загружает модуль с названием $name. Если передано название функции $func, сразу же исполняет указанную функцию. Удобно для реализации роутинга.

$core->hack->(name)->tpl( $part, $name )

Загружает для раздела $part шаблон с названием $name из папки шаблонов. Расширение .tpl не указывается.

$core->hack->(name)->css( $name )

Подключает CSS-файл с названием $name из папки стилей. Расширение .css не указывается.

$core->hack->(name)->js( $name )

Подключает JS-файл с названием $name из папки скриптов. Расширение .js не указывается.

Синтаксис основного файла

Файл main.php отвечает за расширение основного класса хака. Он должен содержать класс с названием hack_name, где вместо name будет название хака. Класс должен наследоваться от thehack. Например:

class hack_proxy extends thehack { … }

Не переопределяйте встроенные конструктор и деструктор класса, они отвечают за работу внутренних функций. В качестве конструктора используйте функцию init, в качестве деструктора - stop. Обе функции не имеют параметров. Например:

class hack_proxy extends thehack {

  public function init() {
    // Функционал конструктора
  }

  public function stop() {
    // Функционал деструктора
  }

}

Если вы не планируете расширять основной класс хака и использовать только встроенные функции, файл main.php можно удалить из папки вручную.