我刚刚启动了一个新的PHP项目,我正在遇到自动加载器的问题。我搜索了错误并查阅了文档(http://www.php-fig.org/psr/psr-4/),但问题仍然存在。
因此,我创建了一个最小的例子来缩小错误的原因 - 但是,即使使用这个最小的例子,它也不会起作用:(
我的文件夹结构如下:
+ 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
{}
?>
test.php的:
<?php namespace sg\ABC;
use sg\ABC\Xyz;
$a = new Xyz();
?>
即使运行composer install
没有显示错误,我在运行代码时立即收到此错误:
$ 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
另外,运行composer dump-autoload
(正如此板中的建议)无效
答案 0 :(得分:1)
您仍需要包含composer autoload.php file以包含已加载的库。
答案 1 :(得分:1)
您需要自动加载器..通常是def csv_reader():
with open('export.csv') as f:
reader = csv.DictReader(f)
for row in reader:
yield {key: value for key, value in row.items()}
generator = csv_reader()
list = []
for i in generator:
list.append(i)
。