2015-10-31 3 views
0

У меня есть эта ошибка:Silex автозагрузку PSR-4 класс не существует

InvalidArgumentException in ControllerResolver.php line 147: Class "MyProject\API\FrontController" does not exist.

Вот моя структура MyProject:

  • composer.json
  • апи
    • Src
      • FrontController.php
      • BundlesFolders
    • приложение
    • веб
  • поставщик
  • клиенты

Мой composer.json

"psr-4": { 
     "MyProject\\API\\": "myproject/api/src", 
     "MyProject\\Client\\": "myproject/client/src" 
} 

Мой routing.php:

// myproject/api/app/config/routing.php 
$routes->get('/', 'MyProject\API\FrontController::exec') 

FrontController.php:

<?php 
// myproject/api/src/FrontController 
namespace MyProject\API; 
class FrontController { 
+0

Вы забыли «потребовать» 'vendor/autoload.php' в routing.php? – Jason

+0

Да vendor/autoload.php здесь, перед '$ app = new Application()', и я попробовал 'composer dumpautoload -o' тоже – Kev

ответ

1

Вы поставить дополнительную папку на карту PSR-4. Первый каталог myproject не должен находиться на вашем пути, так как этот путь относится к файлу composer.json, а ваш код src находится в api/src и clients/src (второй - это просто предположение, вы не публиковали сообщение содержимое каталога клиентов).

Позвольте мне сказать вам, что ИМХО макет вашего каталога странный. У меня был бы один каталог src, а внутри - api и клиентский подкаталог.

PS: Вы указали каталог клиентов в единственном числе, но в композиторе у вас есть это во множественном числе, следите за этими деталями!

Также запустите composer dump-autolad после изменения параметра psr-4.

 Смежные вопросы

  • Нет связанных вопросов^_^