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

时间:2011-05-02 22:36:12

标签: php mysql naming-conventions

经常在PHP模型代码中(至少在我自己的代码中)有直接引用MySQL表和字段名,并且由于MySQL标识符大部分不区分大小写,我通常使用under_score命名约定来制作那些标识符更具可读性。

然而,与此同时,似乎大多数人在创建PHP类库时都使用了camelCase约定,而且我也一直试图这样做。

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

结果是代码的可读性往往远低于我的优势,混合的camelCase,under_score和C风格的命名约定在代码中显得非常接近。

其他人如何应对此问题?也许人们已经找到一些方法来组织他们的工作,以便不同的命名约定往往不会彼此如此接近?或者也许有类库如果使用得当,往往会让事情变得更清洁?我知道这些关于风格的讨论会变得激烈 - 不需要去那里,只需要一些实用的建议!

2 个答案:

答案 0 :(得分:7)

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

如果你没有使用Windows,只要你保持一致就没关系。

答案 1 :(得分:2)

说到型号和&数据库表,你可以使用:

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

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

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