属性命名规范

3
呼叫Gabor de Mooij或其他有更多RedBeanPHP经验的人。我们当前使用下划线的命名约定,尽管任何人都可以使用Pascal/Camel casing,但我认为重要的是一致性,我们不想为了符合一致的命名模式而重构所有内容,但我们会看看我们能做些什么。
这些声明只是互相矛盾。能否有人解释一下这个规则?
此外,您不认为两个或更多单词属性也很常见,如果它们全部小写,那么很丑陋:date_added或dateAdded?
2个回答

5
RedBeanPHP被设计为一种“敏捷”方法。在您编写应用程序和与客户讨论域时,RedBeanPHP会动态生成数据库。
但是,我永远不会强加人为限制。您可以使用下划线和大写字符,只需记住RedBeanPHP使用一些约定来检索/存储关系:table_id和table1_table2是最重要的约定。
另请注意,由于某些数据库-操作系统组合不区分大小写,因此大写表名可能很难维护。
从RedBeanPHP 3.4(现在是alpha版)开始,如果尝试存储无效类型名称的bean,RedBeanPHP将抛出异常;但是这仅用于警告您。要覆盖此检查,请使用setStrictTyping(false)。
例如:
R::setStrictTyping(false);
$bean = R::dispense('postAddress');
$bean->housenumber = '1';
R::store($bean);
$bean = R::dispense('post_address');
$bean->house_number = '2';
R::store($bean);

这将只是有效的。希望这可以澄清情况,我一有时间就会更新文档以更具体化。感谢您通知我此问题。欢迎在我们的论坛上提出任何问题:https://groups.google.com/forum/?fromgroups#!forum/redbeanorm 请注意,在论坛上需要批准您的第一条消息;但没有其他方法可以防止垃圾邮件的出现..

1

在之前的版本中,您可以在属性类型中使用下划线,但不建议这样做,因为可能会与外键发生冲突。我不确定最新版本是否禁止使用下划线或只是不建议使用。这些陈述是矛盾的,但我认为您仍然可以使用下划线,只是不建议使用。

在之前的版本中,所有外键都被命名为<TABLENAME>_id,并通过$bean->TABLENAME->TABLEPROPERTY访问。

表名在多对多关系中使用下划线<TABLE1>_<TABLE2>链接。

我非常确定Redbean的最新版本与旧版本相同,您可以使用下划线,但如果您将****_id作为属性或使用下划线组合两个表名,则可能会引起问题。

据我所知,这些是可能出现问题的唯一两种情况。我不确定标签或其他属性。


那么对于包含2个或更多单词的属性呢?它们是否只能使用下划线或驼峰/帕斯卡命名法? - Jojo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接