2012-11-19 69 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來訪問它的方法。