Автоматическая загрузка PSR 4 не находит класс
Я не уверен, почему мой загрузчик PSR-4 не работает.
Мой файл composer.json просто
{
"require" : {
"abraham/twitteroauth" : "*"
},
"autoload" : {
"psr-4" : {"Filters\\" : "src"}
}
}
Мой PHP-файл, который находится в src/Filters
namespace Filters;
class BlogFilter {
public function __construct()
{
return 'hello from the constructor';
}
}
В моем основном файле, расположенном в корневом каталоге, у меня есть следующее
require 'vendor/autoload.php';
use Filters\BlogFilter;
$foo = new BlogFilter();
echo $foo;
Но когда я пытаюсь запустить код, я получаю
Неустранимая ошибка: класс "Фильтры\blogfilter" не найден в/var/www/html/dev/foo.php в строке 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
4
Author: Vivek Molkar, 2015-05-19
1 answers
Раздел автоматической загрузки должен быть
"autoload" : {
"psr-4" : {"Filters\\" : "src/Filters"}
}
3
Author: Pᴇʜ, 2015-05-19 12:43:18