【发布时间】:2014-04-25 19:54:56
【问题描述】:
在停机期间,我这几天一直在为这个问题摸不着头脑。我并不是很接近实际的解决方案,所以决定在这里发布。我确实找到了这个帖子: PHP/MySQL naming conventions: camelCase vs under_score? 但答案并没有提供前进的方向,尽管关于原因和原因的信息非常丰富。如果重新发布类似问题是不礼貌的行为,请原谅我,并理解这个问题是专门针对数组索引的。
因此,我试图设计一个跨 PHP、SQL 和 JS 的相当统一的命名/大小写方案,以供开发人员团队遵守,这样我们就可以一起愉快地生活。面向对象的 PHP 通常使用 camelCase 和 PascalCase 的混合来编写,关于尚未原生命名的事物。因此,我正在考虑使 PHP 中的所有内容都使用 camelCase 和 Pascal 大小写规范(这不是天真的命名)。这将包括类、对象、方法、变量名,最值得注意的是关联数组键名。但是,我发现自己遇到了这样的问题:SQL 列名通常(并且据我了解是出于良好的技术原因)使用 snake_case 命名。
现在,当我们获取记录集时会发生什么?
$records = DB::fetchAll('SELECT * FROM reco_user');
echo $records[0]['user_name'];
echo $records[0]['date_registered'];
众所周知的比赛场地是锯齿状和随机的!我们有不符合我们的 camelCase 数组键方案的 snake_cased 数组键。
我曾考虑过调整我的方案,使用 camelCase 作为变量名,使用 snake_case 作为键名,但我希望它们不相互对立,因为有时变量名和索引名用于相互通知。
我正在考虑创建一个函数来将所有数组键转换为 camelCase。但是,我担心这可能会被认为是“矫枉过正”,并且其他开发人员不会总是使用它。我还担心这会降低网站速度(特别是对于大型查询),因为每个查询都会有这个额外的数组键转换操作。
这有点痛苦,因为我认为 camelCase 可以很好地适用于 PHP 中的所有其他内容、JS 中的所有内容以及 CSS 中的所有内容。正是返回 SQL 记录的这一方面导致该方案如此接近但到目前为止。
请告诉我你的想法。非常感谢。
【问题讨论】: