PHP的'命名空间:控制器或控制器,模型还是模型?

时间:2017-12-29 09:47:49

标签: php symfony yii namespaces psr-2

例如,Symfony使用\Controller。 Yii2使用\controllers\models

是否存在类似PSR ...s|es的标准?

1 个答案:

答案 0 :(得分:8)

没有PSR指定在命名空间中是使用单数还是复数。这通常是框架的惯例。资本化也是如此。

您是否可以使用您首选的命名约定 - 如果您有任何选择 - 在您选择的框架中主要取决于框架本身,甚至可能在框架的某些部分内有所不同。在Symfony的情况下,默认情况下它是单数App\Controller,但只要您的路由配置使用正确的名称,它就可以轻松更改为App\ControllersApp\controllers

如果偏离框架的惯例,您可能会遇到问题,因为它在配置您的应用时会有所期望。例如,当Symfony 3放入Command/文件夹并且类名称后缀为Command时,它会自动加载您的命令。当你偏离这个时,你必须手动注册它们。另一方面,Symfony 4在服务配置中使用新的autiwiringautoconfigure默认值,并将根据它们是否通过扩展基本Command-class直接或间接地实现正确的接口来检测命令。因此可以有你喜欢的任何名字,可以放在任何文件夹中。因此,即使在框架内或框架的不同版本之间,将名称更改为推荐以外的其他内容可能会产生不同的影响。