Автоматическая загрузка 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
Author: Vivek Molkar, 2015-05-19

1 answers

Раздел автоматической загрузки должен быть

  "autoload" : {
    "psr-4" : {"Filters\\" : "src/Filters"}
  }
 3
Author: Pᴇʜ, 2015-05-19 12:43:18