Автозагрузка библиотек

Я использую

function __autoload($class_name) {
$file_name = str_replace("\\", DIRECTORY_SEPARATOR, $class_name) . '.php';
include $file_name;
}

загрузить мои занятия. И все идеально, но теперь я хочу использовать внешнюю библиотеку, которая имеет другое соглашение об именах Services_Twilio (и я сохранил библиотеку в /code/twilio/Services/Twilio.php)

Теперь PHP говорит Предупреждение: include (Services_Twilio.php): не удалось открыть поток:
Как я могу разобраться с этими делами? Должен ли я исключить этот класс? Я также обнаружил, что в библиотеке есть собственный автозагрузчик.

0

Решение

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

Ваш собственный автозагрузчик должен дать своему автозагрузчику возможность действовать. Вы должны сделать это:

function __autoload($class_name) {
$file_name = str_replace("\\", DIRECTORY_SEPARATOR, $class_name) . '.php';

if (file_exists($file_name)) {
include $file_name;
}
}

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

Вы также можете рассмотреть http://php.net/manual/de/function.spl-autoload-register.php

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]