如果我有线程模型和控制器。
对于模型和控制器,应该是单数还是复数?
我可以显示一个帖子并列出帖子。
不知道我应该使用什么。
$thread->get_lists(); // doesnt sound good
$threads->show(); // doesnt sound good
答案 0 :(得分:15)
无关紧要。
我个人使用单数表示模型,复数表示控制器。
然而,重要的是你选择一个方案并且一致。
答案 1 :(得分:4)
这取决于模型。如果该类的对象只代表一件事,那么使用单数,如果它们代表很多东西,则使用复数(但是你通常不需要这样的类,使用数组/集合)。两者都不可能发生,或者你应该重新设计(1)。
我将使用您的Thread示例:
如果每个对象都为一个线程建模,则将该类命名为“Thread”。如果它一次模拟多个线程,则将其称为“Threads”(或“ThreadCollection”等)。
(1)如果你需要同时表示单个线程和一次表示多个线程,则使用两个不同的类(线程和线程)或创建一个数组或集合后者。那你就干净了: $ thread->显示(); $ threads->列表();
答案 2 :(得分:2)
KohanaPHP非常好地处理它们的单数/复数MVC组件。我会查看它以供参考,因为它是有道理的。但是当它归结为它时,它确实无关紧要,这取决于程序员。我的意思是,如果你得到一堆列表,请执行get_lists()或者如果获取列表的内容使用get_list()。
答案 3 :(得分:2)
和其他人说的一样,没关系。
关于模型,我喜欢在类代表单行时使用单数,例如在使用表示表和记录集的类时使用Active Record或Table Row Gateway和复数时,只是因为我可以使这些返回或包含具有单数名称的类,我可以区分它们。但话说回来,我还可以将它们命名为UserTable,UserCollection和User。使用最能代表您域名的内容。
某些框架有一个约定模型和控制器的约定,以使某些自动化工作。例如,奇异模型将默认使用多个表格,因此您无需自己映射。这称为 convention over configuration ;结束,因为通常你仍然可以按照你的需要配置它。
唯一一次,当我说你的模型和控制器如何命名并不重要时,code convention正在使用中。
答案 4 :(得分:1)
我知道这是一个古老的问题,但是我最近和我的同事就这个问题进行了长时间的辩论。
虽然我个人更喜欢控制器的单数,同时绝对认为单数/复数不应该重要/强制......
大多数众所周知的API都使用复数形式的控制器。这是一个非常有可能结束辩论的论据
答案 5 :(得分:0)
对于表数据库的名称,使用复数 示例=“用户”
对于控制器名称,请使用单数和大写 示例=“ User_Controller”