分配Gabor de Mooij或任何对RedBeanPHP更有经验的人。我们当前的命名约定是使用下划线,虽然任何人都可以使用Pascal / Camel外壳,我认为重要的是一致性,我们不想重构一切只是为了符合一致的命名模式但我们会看看我们能做些什么。
只有这些陈述是矛盾的。任何人都可以澄清这个规则吗?
另外,你不认为2个或更多措辞的属性也是常见的,如果它们都是小写的,它们很难看:date_added或dateAdded?
答案 0 :(得分:5)
RedBeanPHP专为“敏捷”方法而设计。当您编写应用程序并与您的客户讨论域时,数据库由RedBeanPHP即时制作。
但是我永远不会施加人为限制。您可以使用下划线和大写字符,只需记住RedBeanPHP使用一些约定来检索/存储关系:table_id和table1_table2是最重要的。
另请注意,大写表名称可能很难维护,因为某些数据库操作系统组合不区分大小写。
从RedBeanPHP 3.4(现在是alpha)开始,如果您尝试存储具有无效类型名称的bean,RedBeanPHP将抛出异常;但这只是为了警告你。要覆盖此检查,请使用setStricTyping(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 :(得分:1)
在以前的版本中,您可以在属性类型中使用下划线,但不建议使用下划线,因为它可能与外键冲突。我不确定最新版本是禁止它还是不推荐它。这些陈述是矛盾的,但我再次认为你能够使用下划线,不建议这样做。
在以前的版本中,所有外键都命名为<TABLENAME>_id
,可由$bean->TABLENAME->TABLEPROPERTY
表名在多对多关系中与下划线<TABLE1>_<TABLE2>
链接。
我很确定最新版本的redbean与旧版本相同,因为你可以,但如果你有****_id
作为属性或者合并两个表,它可能会导致复杂化名字使用下划线。
据我所知,这是可能发生问题的唯一两个例子。我不确定标签或其他属性。