2015-12-02 6 views
3

У меня есть небольшое приложение Silex. Попытка получить какую-то структуру.Композитор Автозагрузка - Не удается найти класс

Это мой composer.json:

{ 
    "require": { 
     "silex/silex": "~1.3" 
    }, 

    "autoload": { 
     "psr-0": { 
      "HelloWorld\\Controller": "src/HelloWorld/Controllers" 
     } 
    } 
} 

В моем web/index.php файле у меня есть этот

$loader = require_once __DIR__.'/../vendor/autoload.php'; 

$ctrl = new \HelloWorld\Controller\IndexController(); // <- Doesn't work 

Мой IndexController контроллер в src/HelloWorld/Controllers

namespace HelloWorld\Controller; 

class IndexController 
{ 

} 

Я попытался довольно много каждая комбинация под солнце. Кто-нибудь знает, как правильно зарегистрировать его. Материал Silex загружается отлично?

FastCGI sent in stderr: "PHP message: PHP Fatal error: Class 'HelloWorld\Controller\IndexController' not found in /srv/http/web/index.php on line 6"

+1

Я предполагаю, что в какой-то момент вы запустили '' 'comper install''', правильно? –

+1

Это, казалось, исправить это, добавив psr-4 в серию автозагрузки. Добавьте его в качестве ответа, и я соглашусь. Спасибо :) – Kal

+0

Готово сделку, рад, что это сработало! :) –

ответ

1

Я считаю, что вопрос заключается в том, что файл автозагрузчик не сгенерирован так, что она знает, где найти класс. Попробуйте запустить

composer install

Если вы хотите обновить компоненты вашего сайта в будущем, после первоначальной установки, вы всегда можете запустить composer update обновить репозитории.