在 Laravel 5 中,如何将控制器移出 'app' 文件夹

In Laravel 5, how can I move the controllers out of the 'app' folder

我将所有 类 代码放在一个单独的文件夹中。我在文件夹 'app' 旁边创建了一个文件夹 'src'。在这个 'src' 文件夹中还有 'Models'、'Views' 和 'Controllers' 文件夹以及 'routes.php' 文件。所以结构如下。

我通过更改 'app\Providers\RouteServiceProvider.php' 中的路由路径和 'config/view.php' 中的视图路径,将 routes.php 和视图移至 src。如果我在这里做错了,请指正。

我的问题是 - 如何将控制器、模型、视图和 route.php 从 app 移动到 src?

我想这样做是因为我想将所有用户编写的代码放在一个地方。我不想移动 app/Http/Controllers/Controller.php。我只想移动用户创建的控制器。

我想在不在其他地方刹车的情况下实现这一目标。

您可以将您的代码移到那里,您只需要告诉自动加载器在哪里可以找到这些 类。您需要更新 composer.json.

中的 autoload 部分

您的控制器在哪个命名空间中?它会影响你需要放在那里的东西。如果将它们存储在 \App\Http\Controllers 中,则需要在其中添加以下内容:

"autoload": {
  "classmap": [],
  "psr-4": {
    "App\Http\Controllers\": "src/Controllers/",
  }
},

这将告诉自动加载器 App\Http\Controllers 命名空间的根目录是 src/Controllers/ 文件夹。