0

如果你和我一样,你认为 CodeIgniter 很不错。您可能也讨厌每次从模型加载或调用方法或属性时都键入 _model,因为它既丑陋又耗时。

几个小时以来,我一直在寻找解决方案,但没有运气 - 所以我整理了一个快速解决方案。

4

2 回答 2

3

查看加载器类文档

假设您有一个名为 page_model 的类,您通常会像这样加载和使用它:

$this->load->model('page_model'); 
$this->page_model->function();`

如果你想避免每次都输入 _model ,你可以这样做:

$this->load->model('page_model', 'page');    
$this->page->function();

当我第一次开始使用 CodeIgniter 时,我总是这样做。现在在使用 CI 几年和一些网站之后,我对这个决定感到后悔。

查看代码时更难判断发生了什么。将 _model 作为调用模型函数的代码的一部分可以消除任何歧义。例如,在上面的函数调用中,页面是库还是模型?

于 2012-10-20T19:15:51.623 回答
1

这是因为 CodeIgniter 不支持命名空间。尽管CI中命名空间支持的讨论已经有一段时间了,但在股票代码库中的支持仍然即将到来。

解决方案?而是为您的控制器添加前缀!在典型用法中,您不太可能需要在每个文件中多次键入控制器的名称。

首先编辑 application/config/routes 并在所有其他路由之后添加以下行:

$route['(:any)'] = "c_$1";

使用此规则,您可以将 URI 的第一段路由到带有您的前缀的匹配控制器。以便:

http://www.domain.com/fishsticks

映射到以下控制器:

c_fishsticks

接下来,使用此前缀重命名控制器文件,并更改内部的类名以匹配。

而已!现在您可以相对自由地命名您的模型。您可以在闲暇时重命名模型,但不要忘记您需要更改每个模型的文件名、每个模型的类名以及对每个模型的所有引用。这很容易成为最耗时的步骤,但从好的方面来说,您不必一次完成所有操作。

于 2012-10-20T18:44:41.063 回答