自动加载库

时间:2016-04-26 19:37:10

标签: php autoload

我正在使用

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):无法打开流: 我怎么能处理这些案件?我应该排除这个课吗?我还发现该库有自己的自动加载器。

1 个答案:

答案 0 :(得分: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