为什么命名我的代码点火控制器“ Jamie”有效,但“ JamiesCorner”却失败?

时间:2018-12-16 19:47:20

标签: php codeigniter-3 naming

我正在尝试在自己正在建立的网站“ Jamie's Corner”上创建一个新部分。因此,我复制了“关于此站点...”部分中已有的控制器,将文件重命名为JamiesCorner.php,并将控制器重命名为“ JamiesCorner”。当我加载页面(my_site.local / index.php / jamiescorner)时,我希望看到的内容与“关于此站点...”部分相同。相反,我得到了Codeigniter 404页面。我尝试了很多事情,但发现将控制器(和文件)重命名为Jamies是可行的。为什么是这样?名称“ JamiesCorner”显然没有错。那么为什么Codeigniter拒绝呢?

1 个答案:

答案 0 :(得分:2)

CodeIgniter naming convention要求类文件和类定义中的第一个字符应为大写。实际上,就第一个字符而言,这就是rule。至于名称的其余部分,这不是规则,但会对URL产生影响。

使用命名规则,文件应为 Jamies_corner.php 并按如下方式定义类

Firestore

URL将会是class Jamies_corner extends CI_Controller {

CodeIgniter在加载控制器时始终将第一个字符强制为大写。但是它将其余的控制器名称保持原样。在区分大小写的操作系统(所有版本的Linux)中,文件名必须完全匹配,否则将找不到文件。

换句话说,使用文件my_site.local/index.php/jamies_cornerJamiesCorner.php时,URL至少需要为class JamiesCorner

您也可以使用my_site.local/index.php/jamiesCorner,但是如果在“角落”中没有大写字母“ C”,则每次都会失败。

相关问题