最近我决定将一些项目从我自己的(...)自动加载器解决方案升级到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是否能够自动加载某个类而不强制它加载它并导致错误? - 所以我可以采取进一步行动,以防没有找到课程?