升级到Laravel 5后的命名空间问题


Namespacing issue after upgrading to Laravel 5

我正在尝试将我们的应用程序从4.2更新到Laravel 5.1。我们将从一开始就进行全面升级。我们在4.2中使用psr-4命名空间,所以这不会失败,我们也无法找到它的起源,一切似乎都很好。我们所有的端点(域,我们总共有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
<<h3>路线/h3>
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"
    }
},

优化后自动加载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
  • 在Providers下打开RouteServiceProvider
  • 将$namespace改为
如果别人能给我一个解释,我会把他的答案打为最好的。使用默认名称空间的概念可能对某些人很有吸引力,但对我来说,它破坏了psr-4名称空间最美好的一面。