Laravel命名空间与目录

时间:2014-12-01 20:21:50

标签: php laravel laravel-4

所以我正在开发一个拥有大量控制器的大型应用程序。我想知道这种情况适合PSR兼容的做法是什么?

目录示例:

project\workbench\stevebauman\package\src\controllers\WorkOrder\WorkOrderController.php

示例用法声明:

use Stevebauman\Package\Controllers\WorkOrder\WorkOrderController;

如果我将工作订单文件夹命名为命名空间(因为有许多其他控制器与工单相关),我应该将Controller命名为WorkOrder吗?或者因为它已经在子命名空间中,我应该使用:

use Stevebauman\Package\Controllers\WorkOrder\Controller;

对于主工单控制器,并完全取消前缀?

如果它存在,我正在寻找PSR标准。我不确定大型目录项目中通常使用的是什么。例如,如果工单有附件怎么办?我会做这样的事情(子命名空间表示新的子文件夹)?

use Stevebauman\Package\Controllers\WorkOrder\Attachment\Controller;

或:

use Stevebauman\Package\Controllers\WorkOrder\AttachmentController;

甚至:

use Stevebauman\Package\Controllers\WorkOrderAttachmentController;

我希望我的混乱是合理的。任何人都可以提出一些建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

老实说,我从来没有听说过在Laravel中命名目录的任何PSR标准。我不认为确实有一套规则""命名/安排控制器时。有些人根据行动命名他们的控制器:

app/controllers/CreateController.php
app/controllers/DeleteController.php

在这些控制器中有所有不同的函数,如create($object)delete($object),它们根据传递给它的对象执行不同的操作。

另一种方法是每个对象一个控制器:

app/controllers/PersonController.php
app/controllers/DogController.php

在这些控制器中是该特定对象的CRUD函数。

最后,有一些方法可以根据它们所基于的模型组织这些控制器(如问题所示):

app/controllers/Person/PersonController.php
app/controllers/Person/SiblingController.php
etc.

然而,你选择这样做完全取决于你的个人偏好,但要记住的一件事是坚持,我不能强调这一点。这很可能是一个固执己见的问题,但我看来是这样的;除非另有说明,否则任何最适合您的发展品味的都是您应该使用的。

希望有所帮助!