|
本帖最后由 Altair 于 2014-8-8 15:16 编辑
如题!
习惯的定义与类同名的类文件,当CI却建议使用类名的小写形式作为类文件名,真的有必要?!
但以model的加载为例:
载入模型
测试环境: mac xampp本地服务器.
假定:model名称为: Sample_model
Sample_model类有一个方法为 sample_method.
可选类文件名为: sample_model.php Sample_model.php
对类加载的影响:没有影响.
即无论你使用以上哪种方式来命名类文件,以下任一代码都可以使对应的Sample_model类正确加载.
PHP复制代码
$this->load->model('sample_model');
$this->load->model('Sample_model');
$this->load->model('Sample_Model');
复制代码
结论: 加载model类时,大小写不会产生任何影响.
对model调用时的影响: 必须与加载时传递的model名称的大小写一致.
即以上三种加载方式对应的使用model方法依次是:
PHP复制代码
$this->sample_model->sample_method();
$this->Sample_mode->sample_method();
$this->Sample_Model>sample_method();
复制代码
总结:类文件的命名对类的加载没有影响,但使用这个类时,必须保证名称与加载时的名称大小写一致.
猜测:文档建议使用类的小写形式作为类的文件名,这样在使用时就好像控制器本身就有这样一个属性一样,给人一种高大上的感觉.
但是,这样真的好吗?如果控制器本身确实有这样一个属性时,岂不是会发生某种程度的混乱!
我的看法: 支持下面这种方式:
PHP复制代码 $this->load->model('Sample_model');
$this->Sample_model>sample_method();
复制代码
这样,你不仅可以按照以往的习惯将类文件名命名为与类同名的形式;更重要的时,这样的代码使你明白Sample_model属性不是此控制器自带的方法,而是从外部引入的.从代码可读性来说,我觉的后一种更加清晰,更具可读性.
个人看法, 欢迎吐槽!
|
|