2013-02-18 4 views
9

У меня есть ситуация с использованием композитора для загрузки класса в приложении Silex.Composer autoload не загружает класс в Silex

Этот класс расположен по адресу:

src/custom/UserProvider.php 

В моей composer.json, я добавил это линии:

"autoload": { 
    "psr-0": { 
     "CustomNamespace": "src/custom/" 
    } 
} 

Внутри моего файла UserProvider.php, я получил:

namespace CustomNamespace; 

Когда я побежал обновление композитор в консоли, эта линия добавить ред к /vendor/composer/autoload_namespaces.php

'CustomNamespace' => $baseDir . '/src/custom/', 

Но, когда я пытаюсь использовать класс:

new CustomNamespace\UserProvider(); 

Я получил эту ошибку:

Fatal error: Class 'CustomNamespace\UserProvider' not found in /home/ubuntu/www/project/web/index.php on line 27

Кто-нибудь знает, что происходит? Благодаря!

+10

Является ли файл с именем src/custom/CustomNamespace/UserProvider.php? – Maerlyn

+0

hm ... Я собираюсь попробовать это! – joaobarbosa

ответ

8

Проблема в том, что @Maerlyn сказал в своем комментарии.

Everthing прекрасно работает, когда я переехал мой файл ЦСИ/пользовательские/CustomNamespace/UserProvider.php

1

Я просто добавить примечание здесь, если кто-то попадается мой вопрос, который проявит себя так же, как это вопрос, но имел отношение к чувствительности к регистру.

Я переместил свой сайт из OS X (не чувствителен к регистру) в Ubuntu (с учетом регистра), который жаловался, что класс не существует. Файл был назван myclass.php, и когда я переименовал его в MyClass.php, он сработал.

+0

Полезно знать, @ Ханс Нильссон! Thx для дополнения моего вопроса :) – joaobarbosa

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