对于codeigniter,我的文件/类命名约定是否正常?

时间:2011-07-28 16:13:45

标签: php codeigniter codeigniter-url

我正在开始一个新项目并希望事情正确完成:

控制器:

文件名:routemanagerdashboard.php 类名:RouteManagerDashboard

查看: 文件名:routemanagerdashboard_dashboard.php

型号: 文件名:routemanagerdashboard_model

2 个答案:

答案 0 :(得分:4)

这些命名约定非常好。虽然您必须遵循一些约定,但您对文件/类的命名大多取决于个人偏好。在使用CodeIgniter几年后,我已经确定了以下文件的命名约定。

控制器: companies.php(复数文件和类名)

模型: company_model.php(与其对应的表格的单数)

观点:公司/ method_name.php(控制器的所有视图都会进入该类视图的文件夹中)

我总是将我的数据库表名称复数化,并在我的模型和表之间建立一对一的关系。控制器通常具有相应的表和模型,但并非总是如此。我还使用了一个base model,它为每个适合这个设置的表格设置了一个新模型,并且可能是我严格遵守它的一个重要原因。

答案 1 :(得分:2)

这很好,但是routemanagerdashboard似乎有点冗长,你可以考虑用更短的东西。如果您喜欢控制器类名但讨厌长网址,您可以随时使用route来解决它。

由于我们正在处理PHP,因此区分大小写不是问题,所以只要控制器类名称与文件名中的字符匹配,就可以了。只需坚持使用小写文件名。

您的模型名称使用的是通用CI约定,但请注意,在加载模型时,您可以使用第二个参数为类名设置别名以便于使用。例如:

$this->load->model('routemanagerdashboard_model', 'r_model');
$this->r_model->get_something(); // A little easier to work with

在视图上:为与控制器直接相关的所有视图创建子目录可能更好。每个控制器可能需要的不仅仅是一个视图文件。如果将所有视图文件直接放在其根目录中,您将看到/views文件夹无法维护。我建议您使用子目录和简短有意义的文件名,可能与您要加载它们的控制器方法的名称相匹配。示例:

// file = /views/routemanager/dashboard.php
$this->load->view('routemanager/dashboard');

所以,是的 - 你在大多数情况下做得很好,但如果可能的话,想出更短的名字,将视图文件组织到子目录中可能是个好主意。