使用MVC时,您对文件命名了什么?

时间:2010-05-26 16:13:39

标签: php codeigniter naming-conventions

当使用我并不十分熟悉的MVC模式时,我发现自己命名为:

/app/views/widget.php
/app/models/widget.php
/app/controllers/widget.php

这对我很有吸引力,因为很容易找到相关的课程,而且在实际应用中我倾向于使用较短的名字。但是,当我查看我的IDE时,我看到三个不同的文件名为widget.php,这令人困惑。我很想在每个名字上添加“_v”,“_ c”,“_ m”等等。你怎么处理这个?

FWIW,我目前正在使用CodeIgniter,我不知道使用特定约定或任何标准做法是否有任何特殊好处。无论如何,我都参与了各种平台的最佳实践。

4 个答案:

答案 0 :(得分:2)

我的观点以phtml结尾,因此会Widget.phtml。我的模型是一个Widget,因此会产生Widget.php,就像那样,我的控制器将是WidgetController.php

答案 1 :(得分:0)

CodeIgniter(以及任何框架)依赖于一组“约定”(基本上是规则)。其中一条规则是如何处理路由。例如,/ app / controllers /中的'widget'文件将转换为http://yoursite.com/widget/action/的URL(其中action是Widget类中的函数名。

通常的惯例是对您的类使用CamelCaseNaming,为方法使用lowerCamelCase命名。每个框架都有不同的路由引擎。如果您有课程WidgetBlahBlah,则会转换为/widget-blah-blah//widget.blah.blah/(取决于)的网址。动作名称和路由类似。

对于视图的命名,视图的名称应与您的操作相同。应根据您的类名将它们组织到子目录中。同样,这是所有惯例。您的类中的操作会在名为特定名称的特定位置查找视图。

如果您打算使用MVC,我建议您回到开头并学习如何使用它。 MVC旨在通过了解一组约定并利用它们来快速开发。也许从这里开始:http://codeigniter.com/user_guide/toc.html

答案 2 :(得分:0)

我个人认为即使文件位于不同的文件中,所有名为widget.php的内容也会让人感到困惑。除了将文件分成相应的文件夹之外,我倾向于将ModelViewController附加到文件名的末尾。虽然它更详细,但是对于代码库的新手来说,遵循代码更具表现力和更容易。所以我的小部件(在Java中,这是我最常用于mvc的)将命名如下:

/app/widget/view/WidgetView.jsp
/app/widget/model/WidgetModel.java
/app/widget/controller/WidgetController.java
/app/coolwidget/view/CoolWidget.java
...

另外,当我在IDE或编辑器中时,我倾向于查看文件名,而不是编辑时文件的完整路径。因此,如果我正在为我的小部件编辑模型,视图和控制器,我不想检查文件路径以找出我正在处理的那个。

答案 3 :(得分:0)

我通常只是将它们命名为没有任何特殊约定,并通过查看来区分不同的文件:
  - 文件夹名称
  - 文件内容

使用语法高亮显示,主要包含html的视图文件很容易与控制器或模型区分开来。至于告诉模型和控制器之间的区别:我通常不会使用相同的名称命名模型和控制器,因此对我来说没有问题。