PHP& Composer:运行时检查类是否可自动加载

时间:2015-06-06 12:20:19

标签: php composer-php autoload

最近我决定将一些项目从我自己的(...)自动加载器解决方案升级到Composer PSR-4自动加载器。我的代码已经跟随PSR-4了,所以没什么大不了的。

在特定情况下,我有以下代码:

public static function isAutoLoadable($className)
{

    $className = ltrim($className, "\\");
    $file = $GLOBALS["Path"] . "/src/" . str_replace("\\", "/", $className) . ".php";
    if (false !== stream_resolve_include_path($file))
        return $file;

    return false;

}

它允许我检查是否可以加载给定的类名,而不会实际尝试加载它并导致PHP Class * not found错误。

用例:     我目前正在使用它来替换由于某种原因无法找到通用错误的控制器,避免应用程序崩溃并且只是告诉用户出错了...然后进行额外的内部日志记录。

一个函数会很好,因为我可以在尝试加载控制器之前调用它...我不希望这种行为传播到应用程序上的任何其他类

所以我的问题是:是否有相同的方法来检查Composer是否能够自动加载某个类而不强制它加载它并导致错误? - 所以我可以采取进一步行动,以防没有找到课程?

0 个答案:

没有答案