我不知道为什么我的PSR-4 auotloader无法正常工作.
我的composer.json文件很简单
{
"require" : {
"abraham/twitteroauth" : "*"
},
"autoload" : {
"psr-4" : {"Filters\\" : "src"}
}
}
namespace Filters;
class BlogFilter {
public function __construct()
{
return 'hello from the constructor';
}
}
require 'vendor/autoload.PHP';
use Filters\BlogFilter;
$foo = new BlogFilter();
echo $foo;
但是当我尝试运行代码时,我得到了
Fatal error: Class ‘Filters\BlogFilter’ not found in
/var/www/html/dev/foo.PHP on line 7
我不确定为什么它不起作用,我尝试运行composer update,composer install和composer dumpautoload,但错误仍然出现.
我的完整工作结构如下
.
├── composer.json
├── composer.lock
├── foo.PHP
├── src
│ ├── Filters
│ │ └── BlogFilter.PHP
│ └── TestDir
└── vendor
├── abraham
│ └── twitteroauth
│ ├── autoload.PHP
│ ├── composer.json
│ ├── LICENSE.md
│ ├── PHPunit.xml
│ ├── README.md
│ ├── src
│ │ ├── Util
│ │ │ └── JsonDecoder.PHP
│ │ └── Util.PHP
│ └── tests
├── autoload.PHP
└── composer
├── autoload_classmap.PHP
├── autoload_namespaces.PHP
├── autoload_psr4.PHP
├── autoload_real.PHP
├── ClassLoader.PHP
└── installed.json
解决方法:
自动加载部分应该是
"autoload" : {
"psr-4" : {"Filters\\" : "src/Filters"}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。