繁体   English   中英

PHP/MySQL 命名约定:camelCase vs under_score?

[英]PHP/MySQL naming conventions: camelCase vs under_score?

Quite often in PHP model code (at least in my own such code) there are direct references to MySQL table and field names, and since MySQL identifiers are for the most part case-insensitive I typically use the under_score naming convention to make those identifiers a更具可读性。

然而,与此同时,似乎大多数人在创建 PHP class 库时都使用驼峰式约定,我也一直在尝试这样做。

最重要的是,PHP 内置函数本身是不一致的。 其中一些使用 camelCase,另一些使用 under_scores,还有一些使用 C 风格的命名(例如“strtolower”)。

结果是代码的可读性比我喜欢的要低得多,混合的 camelCase、under_score 和 C 风格的命名约定在代码中彼此非常接近。

其他人是如何处理这个问题的? 也许人们已经找到了某种方式来组织他们的工作,这样不同的命名约定往往不会显得彼此如此接近? 或者也许有 class 库,如果使用得当,往往会使事情变得更干净? 我知道这些关于风格的讨论会变得很激烈——不需要 go 那里,只是一些实用的建议!

正如 teresko 所说,MySQL 名称在 *NIX 平台上区分大小写,在 Windows 上不区分大小写。 如果您开发代码来支持两者(就像我所做的那样),那么混合您的案例可能会导致巨大的麻烦:例如,将数据库转储到 Windows 并将其恢复到 *NIX 并且您的所有案例都将丢失。 实际上,正是出于这个原因,我们不得不拼凑代码来检测和修复转储中的案例。

如果你没有 Windows 尽管你使用什么并不重要,只要你保持一致。

对于模型和数据库表,您可以使用:

  • model 名称的 CamelCase,
  • 数据库表的模型名称的复数形式(具有一致的小写/大写,例如“camelcases”),
  • 按字母顺序排列的表名,用下划线分隔(例如,'camels_cases' 是 'cases' 和 'camels' 之间的连接表),

对于类,我通常会使用 CamelCases(以大写开头)和方法(以小写开头)使用 camelCases。

但事实上,重要的是一致性和可读性。 遵循一些众所周知且广泛实施的框架的命名约定可能是一个好主意,例如Zend Framework (就编码标准而言,这个框架提供了非常精确的指导方针),但是例如。 Kohana 可能也是一个好主意。 重新发明轮子可能不是最好的主意;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM