2012-11-19 37 views
1

我正在使用codeignitor,目前我有一个名为“Common_func”的库,它是自动加载的。codeigniter缩短方法

,我可以这样调用它无处不在

$this->Common_func->common_method(); 

其确定与控制器和模型工作的情况下,但在意见情况下,它使得HTML丑陋,

我知道模板解析选项,但我不想去那。

是否有任何可行的方法来访问缩短结构。

这样的(或与至少词语similer)

Common_func->common_method(); 

或比这更好。

谢谢。

+0

那么,你可以复制一部分到一个新的变量...... ** $ short = $ this-> Common_func; **然后调用** $ short-> common_method(); ** – Digitalis

+0

他必须做的这在他希望使用这个库的每种方法中,这会使得更长更长 – WatsMyName

+0

问题:为什么你需要访问视图中的方法?它听起来不正确(原谅我,如果我太天真了) – ajreal

回答

3

最好的做法是不要在View文件中使用库文件,库文件用于控制器和模型。助手用于视图,它们是随机函数,可帮助您进行格式化/代码生成,有时甚至更多。

不过,如果你真的想保持你的图书馆,它是可以让“抽象”助手方法,这将有助于你做出与视图文件干净和可读性:

common_helper.php

function common_method($arg) { 
    $ci =& get_instance(); 
    return $ci->Common_func->common_method($arg); 
} 

这将使您的帮助者更新库中所做的更改。

+0

我同意最佳做法,但在CI帮助者方面是有限的,在一些地区,我们的lib有更多的事情要做。 – Red

+0

它们如何有限?它们不受限制,图书馆可以做的一切,帮手也可以做到。技术上同意 –

+0

,但问题是为什么有'helper'和'library'? (我不争论,但我只是想学习新的东西):D – Red

0

我在codeigniter论坛发现了这个。此链接可以帮助你

http://codeigniter.com/forums/viewthread/139788/

,或者你可以缩小一点,如果你的库名是相当长的这样

class SomeClass extends CI_Controller{ 
    function __construct(){ 
     parent::__construct(); 
     $this->lib=$this->Really_Long_Library_name; 
    } 
} 

这种方式,您可以使用$this->lib来访问它的方法。