【问题标题】:PHP Namespace, why still use suffix? [closed]PHP Namespace,为什么还要使用后缀? [关闭]
【发布时间】:2013-11-27 18:19:11
【问题描述】:

当前版本的 PHP 我使用 5.5.x 版本。它是支持命名空间,但我仍然看到一些像 Symfony2 这样的框架仍在其类名中使用后缀。

例如:对于控制器,它有后缀控制器:AdminController, UserController

这仍然是使用后缀的好习惯吗?我的意思是,我们不需要担心名称冲突,因为已经有一个命名空间。

【问题讨论】:

  • 命名空间肯定会使 pre 修复变得多余。我不会看到 Controller 作为类名称的一部分的后缀...
  • 我对接口和抽象类也使用相同的模式:class UserInterfaceclass UserAbstract
  • Admin 这个名字本身能告诉你什么吗?这里的 Admin 或 User 是形容词,而 Controller 是名词。这些可能有一个名为 Controller 的通用基类 - 这是一个非常常见的 OOP 命名约定。
  • @feela 作为一名 C# 开发人员,我会分别称其为 IUser 和 UserBase。

标签: php symfony namespaces


【解决方案1】:

我认为在某些情况下添加后缀很有用。 例如当你导入类时

use My\Namespace\Controller\NewsController;

以后再用

$newsController = new NewsController()

你看到它是控制器而不是一些 POPO 类。但是,您也可以使用自己的名称导入包,例如

use My\Namespace\Controller as Controller

ans 在代码中使用它作为

$newsController = new Controller\News()

但对我来说,阅读和理解起来比较困难

【讨论】:

  • 哦,我明白了,$newsController = new Controller\News() 确实更难阅读。
  • 当然你也可以使用$newsController = new News(),但是在那种情况下你使用什么类是完全无法理解的(也许你也有News作为实体,News作为解析器等等)
猜你喜欢
  • 2010-12-23
  • 2010-10-21
  • 1970-01-01
  • 2010-09-10
  • 2010-10-01
  • 2017-02-17
  • 2011-08-21
  • 2015-03-11
相关资源
最近更新 更多