Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用和不使用composer的PHP自动加载调试_Php_Spl Autoloader - Fatal编程技术网

使用和不使用composer的PHP自动加载调试

使用和不使用composer的PHP自动加载调试,php,spl-autoloader,Php,Spl Autoloader,花了2个多小时试图调试PHP中由拼写错误引起的自动加载问题 有没有一种方法可以显示PHP在尝试加载特定类时将查找什么文件? 查找将考虑当前文件的名称空间和任何spl_自动加载/编写器设置的内容 因此,可以在脚本中插入以下内容以帮助调试: var_dump(showAutoLoadPaths('myspace\Controller\fancyClass')); $template = new myspace\fancyClass; 并得到如下输出: array ( 0 => 'sr

花了2个多小时试图调试PHP中由拼写错误引起的自动加载问题

有没有一种方法可以显示PHP在尝试加载特定类时将查找什么文件? 查找将考虑当前文件的名称空间和任何spl_自动加载/编写器设置的内容

因此,可以在脚本中插入以下内容以帮助调试:

var_dump(showAutoLoadPaths('myspace\Controller\fancyClass'));
$template = new myspace\fancyClass;
并得到如下输出:

array (
    0 => 'src/myspace/Controller/fancyClass',
)
Undefined class : fancyClass
允许我的计算机运行:

ls -la src/myspace/Controller/fancyClass
ls: cannot access 'Controller': No such file or directory
ls -la src/myspace
drwxrwxr-x 1 user user 74 May 21 15:47 Controllers
从上面可以看出,PHP正在寻找一个文件夹“Controller”,但该文件夹实际上被称为“Controllers”

我试图解释spl_autoload_functions()的输出,但我无法确定文件中的内容。
对现有/内置解决方案的任何建议都很好,但如果没有,请提供有关解码spl_autoload_函数输出的任何提示,以便我自己编写一些东西。

您可以在
PSR-0
PSR-4
模式中查看有关自动加载器的更多信息

基本上,如果您注册了自动加载文件夹,他们将调用
spl\u autoload\u register()
函数,因此,如果您找到该函数的内容并进行调试,您可以尝试在目录中搜索

看看自动加载模式。您可能有一个
autoload()
功能,可以检查设置的文件夹

并查看更多有关自动加载器的信息