Php 带目录的Laravel命名空间

Php 带目录的Laravel命名空间,php,laravel,laravel-4,Php,Laravel,Laravel 4,所以我正在开发一个有大量控制器的大型应用程序。我想知道在这种情况下,PSR兼容的正确做法是什么 目录示例: project\workbench\stevebauman\package\src\controllers\WorkOrder\WorkOrderController.php 示例use语句: use Stevebauman\Package\Controllers\WorkOrder\WorkOrderController; 如果我将工单文件夹命名为子名称空间(因为有许多其他控制器与工

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

目录示例:

project\workbench\stevebauman\package\src\controllers\WorkOrder\WorkOrderController.php
示例use语句:

use Stevebauman\Package\Controllers\WorkOrder\WorkOrderController;
如果我将工单文件夹命名为子名称空间(因为有许多其他控制器与工单相关),我是否应该将
控制器
命名为
工单
?或者,既然这已经在子命名空间中,我应该只使用:

use Stevebauman\Package\Controllers\WorkOrder\Controller;
对于主工单控制器,是否完全取消前缀

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

或:

甚至:

use Stevebauman\Package\Controllers\WorkOrderAttachmentController;

我希望我在这里的困惑是合理的。有人能提出一些建议吗?谢谢

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

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

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

app/controllers/PersonController.php
app/controllers/DogController.php
在这些控制器中,是该特定对象的
CRUD
函数

最后,有一些方法可以根据这些控制器所基于的模型来组织这些控制器(如您的问题中所提供的):

不管你如何选择,这完全取决于你的个人喜好,但要记住的一件事是保持一致,这一点我怎么强调都不过分。这很可能是一个固执己见的问题,但我的看法是;除非另有指示,否则最适合您的开发口味的东西就是您应该使用的东西


希望有帮助

嘿,蒂姆,非常感谢你的评论。我非常喜欢您提供的上一个示例,它创建了一个主资源目录,控制器名称表示它们正在管理的关系。我要用这个。我也喜欢“保持一致性”的提醒,因为我正试图使应用程序的结构尽可能一致和易于理解。谢谢,没问题。同样,这都是个人喜好。我个人使用过第1种和第2种方法,但在较大的应用程序中,它们会变得非常混乱。但最适合你的是最重要的。干杯
app/controllers/CreateController.php
app/controllers/DeleteController.php
app/controllers/PersonController.php
app/controllers/DogController.php
app/controllers/Person/PersonController.php
app/controllers/Person/SiblingController.php
etc.