代码之家  ›  专栏  ›  技术社区  ›  Simon E. pbs

为什么cakephp使用不同的复数/单数命名约定?

  •  5
  • Simon E. pbs  · 技术社区  · 15 年前

    有人能在这里解释一下为什么cakephp对db表和控制器使用复数名称,对模型使用单数形式?为什么不总是使用单数或复数?对我来说,总是要想“现在我用复数还是单数?”(还是有一种简单的记忆方式??)然后您就有了使用这两种方法组合的联接表!

    我想在某个地方有一个很好的理由,但还没有发现。
    (我真的希望这不仅仅是因为RubyonRails的工作方式。)

    西蒙。

    2 回复  |  直到 15 年前
        1
  •  10
  •   deceze    15 年前

    CakePHP Conventions

    cakephp_s conventions是从多年的Web开发经验和最佳实践中提炼出来的。虽然我们建议您在使用cakephp开发时使用这些约定,但是我们应该提到,这些原则中的许多很容易被改写,这在使用遗留系统时尤其方便。

    我认为这样做的目的是让阅读和思考元素的方式更加流畅。数据库表总是复数的,因为它们包含许多记录。模型是奇异的,因为您应该考虑用它来查找单个记录。的选择字段 model_id 将自动从 $models ,因为您选择了多个中的一个。

    $model = $this->Model->find('first');  // reads like English
    $model = $this->Models->find('first'); // slightly trips you up
    
    $models = $this->Model->find('all');   // works okay
    $models = $this->Models->find('all');  // more logical, but "this models" still trips
    

    它并不总是完美的,但我认为一旦你习惯了它,它就是一个很好的惯例。不过,我一开始就知道这是多么令人困惑。

        2
  •  4
  •   deizel. user4815162342    15 年前

    有没有简单的记忆方法?

    是的,关于命名约定计数的部分(db/模型/控制器)如果不是模特的名字 User )或外键的名称(即 user_id ,那么它是复数。除了这两件事,一切基本上都是复数。

    推荐文章