所以我正在开发一个拥有大量控制器的大型应用程序。我想知道这种情况适合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;
我希望我的混乱是合理的。任何人都可以提出一些建议吗?谢谢!
答案 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.
然而,你选择这样做完全取决于你的个人偏好,但要记住的一件事是坚持,我不能强调这一点。这很可能是一个固执己见的问题,但我看来是这样的;除非另有说明,否则任何最适合您的发展品味的都是您应该使用的。
希望有所帮助!