URLs
您的 URL 通常应全部为小写字母。如果您期望使用大写字母,则您有可能会意外排除它们的小写字母,即使它们是相同的 URL。例子:www.example.com/controller/method/param
控制器
控制器类名除首字母外应全部小写。
- 如果您的网址是
www.example.com/gallery
,控制器名称为Gallery
.
- 如果您的网址是
www.example.com/admin_folder
,控制器名称为Admin_folder
.
控制器文件名应与类名匹配,但全部小写。
- 画廊::
gallery.php
- 管理文件夹::
admin_folder.php
控制器方法也应该全部小写。大写字母有一定的灵活性,但与 URL 类似,有可能会出现问题(这是一个例子 https://stackoverflow.com/questions/16738179/codeigniter-2-callback-function-in-my-controller其中大写字母会干扰表单验证回调方法)。
Models
模型遵循与控制器相同的大部分约定。唯一的区别是模型方法名称,它可以使用您偏好的大小写。由于这些方法不依赖于 URL,并且使用普通的 PHP OOP 进行调用,因此您可以随意命名它们。
建议使用全小写版本加载模型。虽然 CI 不要求这样做,但如果某些用户使用大写字母加载它,然后尝试以全小写形式访问它,则可能会让某些用户感到困惑(这是由于本机 PHP 对类属性 [和一般变量] 区分大小写) ,而不是 CodeIgniter)。
- 模型类名:
Users_model
(the _model
后缀也不是必需的,但有些人可能会将其用作个人喜好,或者防止与Users
控制器)。
- 模型文件名:
users_model.php
- 模型加载:
$this->load->model('users_model')
- 模型方法名称(都可以):
$this->users->getAll()
, $this->users->find_by_name($name)
, etc.
图书馆
图书馆遵循相同的约定except为文件名。在他们的例子中,文件名应该与类名匹配。
与模型类似,建议使用小写名称加载库。
这些规则对于 CI 的库是相同的(位于application/core
and application/libraries
以及自定义或第三方库。
特别提示:扩展默认 CI 库时,前缀定义在application/config.php
发挥作用。此前缀通常应全部大写,后跟下划线。默认为MY_
.
- 库类名:
Photos
- 库文件名:
Photos.php
,
- 库负载:
$this->load->library('photos')
Helpers
助手名称和加载全部小写。文件名由助手名称和_helper
后附。
- 帮手姓名:
url
- 帮助文件名称:
url_helper.php
- 辅助负载:
$this->load->helper('url')
Notes
CodeIgniter 的命名约定有些不一致,但确实没有太多规则,因此很容易习惯和记忆。我很少遇到 CI 中的命名和加载问题,当我遇到问题时,通常是因为我正在从事与 Composer 相关的项目,所以我养成了不同的习惯。
本答案中的规则适用于撰写本文时的 CodeIgniter 2.1.x。 Github 上有关于 3.0 的讨论更好并增加命名约定的一致性 https://github.com/EllisLab/CodeIgniter/issues/1805,如果您愿意,您可以阅读并做出贡献。