【发布时间】:2011-01-11 15:58:05
【问题描述】:
我正在尝试自动化访问我使用的框架 (CodeIgniter) 中的库的过程,但遇到了一些问题。
Codeigniter 目前加载这样的库:
$this->CI->load->library('name');
$this->CI->name->method();
不用说,这是一大堆代码,可以用更少的东西来实现。
我想像这样访问我的库:
_Lib::name->method();
然后_Lib 类将负责加载正确的库(或在这种情况下将该库的加载定向到加载器类)。
但是,上面的代码会导致错误“unexpected T_OBJECT_OPERATOR”。
我的最终目标是能够与库对话并让它们以尽可能少的代码按需加载,并且无需初始化全局变量。
有什么想法吗?请记住,它需要看起来尽可能可用且不言自明。
我想避免使用像 _Lib('name')->method() 这样的东西,因为每次都写很乏味。
编辑:
我最终创建了一个默认库,我从中扩展了我的库,默认库具有将其他库(或模型,或助手,或..等)加载到适当的加载器的属性,所以我可以这样做
$this->lib->name->method();
感谢大家的回答
【问题讨论】:
-
对不起,_Lib::name->method(); 之间的真正区别是什么?和 _Lib('name')->method() ?两个字符?这真的不是很多,是吗?几乎没有“乏味”。如果是的话,我可以推荐一个可以帮助你的编辑器吗?
-
这只是个人喜好,我不喜欢在不是绝对需要的地方使用带引号的字符串。我实际上使用带有制表符完成的 Komodo,所以你是对的,这并不乏味。我只是说乏味,因为没有更好的词。
标签: php overloading static-libraries