Проблема с пространством имен после обновления до Laravel 5

1

Я пытаюсь обновить наше приложение до Laravel 5.1 из 4.2. С самого начала мы собираемся полностью обновиться. Мы использовали пространства имен psr-4 в 4.2, поэтому это не ожидалось, что мы потерпим неудачу, и мы не смогли найти его происхождение, все кажется прекрасным. Все наши конечные точки (домены, у нас всего 4) сталкиваются с одной и той же проблемой при доступе к любому маршруту.

Структура каталога приложений

Console
    Commands
        BackTools
        Consumer
        [Other Endpoints]
Events
Exceptions
Http
    Controllers
        BackTools
        Consumer
        [Other Endpoints]
    Middleware
        BackTools
        Consumer
        [Other Endpoints]
    Requests
    Routes
        BackTools
        Consumer
        [Other Endpoints]
    ViewComposers
        BackTools
        Consumer
        [Other Endpoints]
Jobs
    BackTools
    Consumer
    [Other Endpoints]
Libraries
Listeners
Providers

Маршруты

Route::group(array(
    'domain' => Config::get('settings.domains.back'),
    'namespace' => 'back\\controllers'
), function () {
    Route::get('login', array('as' => 'auth.back.login', 'uses' => 'AuthController@getBackLogin'));
    Route::get('logout', array('as' => 'auth.back.logout', 'uses' => 'AuthController@getBackLogout'));
    Route::post('login', array('as' => 'auth.back.login', 'uses' => 'AuthController@postBackLogin'));
});

Композитор

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "companyX\\": "app/",
        "back\\composers\\": "app/Http/ViewComposers/BackTools",
        "back\\controllers\\": "app/Http/Controllers/BackTools",
        "back\\jobs\\": "app/Jobs/BackTools",
        "back\\middleware\\": "app/Http/Middleware/BackTools",
        "consumer\\composers\\": "app/Http/ViewComposers/Consumer",
        "consumer\\controllers\\": "app/Http/Controllers/Consumer",
        "consumer\\jobs\\": "app/Jobs/Consumer",
        "consumer\\middleware\\": "app/Http/Middleware/Consumer",          
        "companyX\\commands\\": "app/Console/Commands",
        "companyX\\composers\\": "app/ViewComposers",
        "companyX\\controllers\\": "app/Http/Controllers",
        "companyX\\jobs\\": "app/Jobs",
        "companyX\\libraries\\": "app/Libraries",
        "companyX\\providers\\": "app/Providers"
    }
},

Autoload Classmap после оптимизации

'back\\controllers\\AuthController' => $baseDir . '/app/Http/Controllers/BackTools/AuthController.php',
'back\\controllers\\BackToolsController' => $baseDir . '/app/Http/Controllers/BackTools/BackToolsController.php',

Пример ошибки

ReflectionException in Container.php line 736: 
Class swaggable\Http\Controllers\back\controllers\BackToolsController does not exist
  • 0
    попробуйте composer dump-autoload чтобы восстановить файл автоматической загрузки. и упомяните ошибку, которую вы получаете ..
  • 0
    это не имеет никакого эффекта ... мы перепробовали все соответствующие команды ремесленников.
Показать ещё 7 комментариев
Теги:
namespaces
laravel-5.1

1 ответ

0
Лучший ответ
  • Открыть RouteServiceProvider под провайдерами
  • Измените $ namespace на ''

Если кто-то еще может дать мне объяснение, я лучше всего помету его ответ. Концепция наличия пространства имен по умолчанию может понравиться кому-то, но для меня он разбивает самый красивый аспект пространства имен psr-4.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню