4
我不知道爲什麼我的PSR-4 auotloader不工作。PSR 4自動加載找不到類
我composer.json文件只是
{
"require" : {
"abraham/twitteroauth" : "*"
},
"autoload" : {
"psr-4" : {"Filters\\" : "src"}
}
}
我的PHP文件,該文件被放在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
它不應該是' 「PSR-4」:{ 「過濾器\\」:「SRC /過濾器「}」? –
謝謝,現在似乎工作 – user9418
只是添加了一個答案,所以這個問題可以被標記爲已解決。 –