Хук integrate_autoload

Этот хук появился в SMF 2.1 и предназначен для автоматического подключения файлов с используемыми классами.

Расположение

index.php

    call_integration_hook('integrate_autoload', array(&$classMap));

В переменной $classMap содержится массив, где ключами являются пространства имён, а значениями — пути к файлам классов внутри директории /Sources.

Использование

Подключение через вызов в PHP-файле:

add_integration_function('integrate_autoload', __NAMESPACE__ . '\Integration::autoload', false, __FILE__);

Пример функции autoload из модификации Optimus:

<?php

namespace Bugo\Optimus;

class Integration
{
    public static function autoload(&$classMap)
    {
        $classMap['Bugo\\Optimus\\'] = 'Optimus/';
    }
}

Благодаря функции выше в коде приложения при вызове требуемой функции можно указать лишь название класса (например, Subs::function()), без полного пути к нему (\Bugo\Optimus\Subs::function()). SMF будет искать нужный файл в директории /Sources/Optimus.

Хук обязательно пригодится при разработке приложения с неймспейсами и классами.

См. также Автоматическая загрузка классов

Поделиться
Отправить
Класснуть
Вотсапнуть