Php 作曲家自动加载不起作用
我刚刚开始了一个新的PHP项目,就在前面,我遇到了autoloader的问题。我搜索了错误并查阅了文档(),但问题仍然存在 因此,我创建了一个最小的示例来缩小错误的原因-然而,即使使用这个最小的示例,它也不起作用:( 我的文件夹结构如下所示:Php 作曲家自动加载不起作用,php,composer-php,autoload,Php,Composer Php,Autoload,我刚刚开始了一个新的PHP项目,就在前面,我遇到了autoloader的问题。我搜索了错误并查阅了文档(),但问题仍然存在 因此,我创建了一个最小的示例来缩小错误的原因-然而,即使使用这个最小的示例,它也不起作用:( 我的文件夹结构如下所示: + src/ | + Xyz.php + composer.json + test.php 这是我的密码 composer.json: { "name": "sg/ABC", "description": "abc", "auto
+ src/
| + Xyz.php
+ composer.json
+ test.php
这是我的密码
composer.json:
{
"name": "sg/ABC",
"description": "abc",
"autoload": {
"psr-4": {
"sg\\ABC\\": "src/"
}
}
}
Xyz.php:
<?php namespace sg\ABC;
class Xyz
{}
?>
此外,运行
composer dump autoload
(如本图板中的建议)也没有帮助您仍然需要包含以包含加载的库。您需要自动加载程序。。通常是require\u once“path/to/vendor/autoload.php”
是的,我在最简单的示例中忘记了这一点。虽然在将其添加到示例中后,它起了作用,但实际的代码仍然不起作用。出于某种原因(我甚至还没有开始理解),在将代码一部分一部分地复制到新的存储库并首先添加空类,然后添加code.facepalm之后,它现在就起作用了
<?php namespace sg\ABC;
use sg\ABC\Xyz;
$a = new Xyz();
?>
$ php test.php
PHP Fatal error: Class 'sg\ABC\Xyz' not found in /dir/x/test.php on line 5
Fatal error: Class 'sg\ABC\Xyz' not found in /dir/x/test.php on line 5