【问题标题】:Laravel 4.2 controllers in subfolders子文件夹中的 Laravel 4.2 控制器
【发布时间】:2015-05-31 15:41:36
【问题描述】:

我正在为每种类型的请求 post/put/get 制作一个控制器。

所以我现在的问题是,在使用 L 4.2 时,将控制器放在子文件夹中的最佳方法是什么?

/控制器/子文件夹..

我看到有些人使用命名空间,有些人只是创建一个子文件夹并将他们的控制器放入其中然后运行 ​​composer dump autoload-

但是在 L 4.2 中是否有任何“最佳实践”方式来做到这一点?

【问题讨论】:

标签: php laravel


【解决方案1】:

我以命名空间的方式来做。这带来的一个好处是我们可以在文件夹中拥有相同的命名类。目前在我正在构建的 Laravel 4.2 应用程序中,我正在使用 controllers/api 子文件夹,其中所有类的 Api 命名空间。其中一个类是UsersController。它也可能用于前端网站,所以现在你必须说 FrontendUsersController,或者一些奇怪而冗长的东西。因此,为了避免这种情况,最好使用命名空间控制器。

另外,Laravel 5 提倡为您的项目命名空间,PSR 标准也是如此。所以从长远来看,这可能是更好的方法。

【讨论】:

  • 感谢您的回复@Sameer Nyaupane 但是如何在控制器中使用命名空间?我是否必须编写使用“文件夹”并通过整个路径调用控制器? Sry 从来没有用过,所以我是新手
  • 是这样的吗:在 /controllers/Subfolder 我创建了我的控制器:
  • 不客气。是的,我正在写回复,但是您已经自己回复了:D,是的,您就是这样做的。当你在路由中使用它时,你应该像 Route::get('myroute-path', 'Subfolder\MainController@mymethod'); 这样调用它
  • 很抱歉再次询问@Sameer Nyaupane,但我看到了一些不同的方式来编写控制器。我应该写使用 BaseController 吗? somecontroller extends BaseController {} 或者我可以简单地写: somecontroller extends \BaseController {} 没有“使用 BaseController;”部分
  • 我建议您为每个命名空间创建一个新的基本控制器。我的意思是,如果您使用的是 controllers/subfolder ,那么您可以拥有一个扩展 Controller 的 SubfolderController。在 SubfolderController 中,使用子文件夹命名空间。这样,使用此命名空间的所有其他类将自动访问SubfolderController,而无需使用 \ 或使用。所以基本上我们的BaseControllerSubfolderController。 :)
猜你喜欢
  • 1970-01-01
  • 2021-08-25
  • 2013-09-21
  • 2015-09-14
  • 2019-01-18
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多