2015-02-26 3 views
0

У меня есть пользовательский модуль Laravel я написал, что я включаю его в моем app.php как так:Laravel 4,2 включает поставщик перед обновлением композитора

'providers' => array(
     'Illuminate\Foundation\Providers\ArtisanServiceProvider', 
     'Illuminate\Auth\AuthServiceProvider', 
     'My\Custom\Provider' 
    ); 

Everytime я бег композитора обновить свои стойла говоря, что мой класс недоступен:

Error Output: PHP Fatal error: Class My\Custom\Provider not found in ProviderRepository.php on line 157 

Там должен быть способ, чтобы мой провайдер в приложение конфигурации, и все еще быть в состоянии выполнить обновление композитора, в противном случае его очень трудно автоматически развернуть мой код?

редактировать То, что я сейчас найти себе делать комментирует поставщика из app.php, бегая обновление композитора, а затем снова включить поставщика и все работает нормально.

редактировать Вот мой самозагрузки/start.php среда

$env = $app->detectEnvironment(array(
    // Dev environments 
    'dev' => array('dev.xxx.com'), 

    // Live server catch 
    'live' => array('live.xxx.com'), 

    // EU Server catch 
    'eu.west.1.live' => array('eu-west-1.xxx.com'), 

    // US server catch 
    'us.west.1.live' => array('us-west-1.xxx.com'), 

    // Local test environments 
    'chris' => array('outrunthewolf-MacBook-Air', 'e7180623aa2e', 'precise64'), 

    // Local catch 
    'dev' => array('*') 
)); 

И моя автозагрузка от композитора

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests" 
    ], 
    "psr-4": { 
     "": "app/controllers/", 
     "": "app/libraries/", 
     "Model\\": "app/models/" 
    } 
}, 
+0

Вы абсолютно уверены, что у вас нет опечатки в имени провайдера и что пространство имен правильное (возможно, даже отсутствие прописной буквы CamelCase-upper letter)? – Quasdunk

+0

Да. Просто дважды проверьте. – outrunthewolf

+0

Хорошо, у вас есть несколько окружений? Убедитесь, что ваш провайдер присутствует во всех них. Я помню странную небольшую ошибку в L4.2, где мои файлы, специфичные для среды, не были правильно объединены с основным файлом (только в отношении вложенных массивов, таких как поставщики), поэтому я копировал * все * провайдеры и фасады в каждый файл, относящийся к среде. Я не знаю, существует ли проблема, но, может быть, вы можете сделать это. – Quasdunk

ответ

0

Я хотел бы предложить некоторые пути решения этого. 1. Убедитесь, что в имени поставщика нет опечатки и что пространство имен верное, как было предложено в Quasdunk, в комментариях. 2. Если композитор установить на вашем компьютере, пожалуйста, выполните следующую команду:

composer dump-autoload 

Это будет автоматически загружать все классы. Может быть, это поможет вам.

+0

Да, я обычно запускаю это после того, как сделал обновление для композитора. Но я не могу завершить обновление для композитора. – outrunthewolf

+0

Не уверен, как это работает? – outrunthewolf

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