【问题标题】:What is the rationale behind capitalizing class names in PHP? What in case of namespaces?在 PHP 中大写类名的基本原理是什么?如果是命名空间呢?
【发布时间】:2013-11-20 18:00:02
【问题描述】:

在 PHP 世界中,将类名大写是很常见的(通常对对象使用 UpperCamelCase 与 lowerCamelCase,但也包括方法,有时还使用函数)。我知道这是许多编程语言中避免命名冲突的常见做法,例如类与对象。然而,第二个想法,它在 C++ 或 Java 中可能是有意义的,但在 PHP 中,美元符号使什么是类以及什么是类的实例变得相当清楚。那么,除了“广泛的实践”或(有点武断的)可读性之外,还有其他一些原因可以合理地为类使用单独的命名约定吗?有哪些潜在的命名冲突?

事实上,在 PHP 中通常使用大写名称的另一种情况是命名空间。这让我提出了一个类似的问题:PHP 中命名空间的单独命名约定背后的基本原理是什么?是否存在一些潜在的命名冲突?还是只是从其他语言借来的约定?

【问题讨论】:

  • 嗯 - 在this question 的答案中可以找到一些讨论和几个样式指南链接。
  • 正如the php manual 所说,至少函数是不区分大小写的,因此该样式无助于防止任何冲突。
  • 近年来有一些运动试图为 php 世界带来一个标准,如果你有兴趣看看 PHP-FIG (Framework Inter Group) 的工作和他们取得的成就到目前为止:php-fig.org/psr/psr-1
  • 嗯,PSR 主要说明编码标准,并没有过多解释。无论如何,据我所知,PHP-FIG 的目标是在现有框架标准之间寻求某种“互操作性”。这个问题表达的我的个人目标是了解原因——是否有一些实际原因,或者可能只是机械地从其他编程语言转移习惯。

标签: php naming-conventions


【解决方案1】:

据我所知,这最初只是几年前框架开发人员的一种风格选择。随着 PHP 从以框架为中心的生态系统演变为更多以包为中心的生态系统(很大程度上归功于 Composer),许多主要的框架开发人员聚集在一起创建了Framework Interoperability Group。该小组的目的是“讨论我们项目之间的共同点并找到我们可以合作的方式。”

在过去的几年中,已经起草并投票了几个标准文件,包括PSR-1,它定义了一个基本编码标准,其中包括在“StudlyCaps”中声明类的指令。该标准自推出以来已被绝大多数框架和库采用,这就是为什么您现在几乎可以在任何地方看到它的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 2011-03-23
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多