2013-09-25 21 views
-5

我有5個或更多的方法,如下面的方法。 我希望能夠幫我寫一個方法或兩個減少代碼和提高我的代碼的可用性:如何提高這段代碼的可用性?

public function index() { 
    $this -> load -> view('header'); 
    $this -> load -> view('navigation'); 
    $this -> load -> view('default_form'); 
    $this -> load -> view('footer'); 
} 

public function view_courses() { 
    $this -> load -> view('header'); 
    $this -> load -> view('navigation'); 
    $this -> load -> view('courses'); 
    $this -> load -> view('footer'); 
} 

public function view_classrooms() { 
    $this -> load -> view('header'); 
    $this -> load -> view('navigation'); 
    $this -> load -> view('classroom'); 
    $this -> load -> view('footer'); 
} 
+2

什麼問題? – alexn

+0

試着更清楚你真正想達到什麼,詳細說明你的需求。 – mathielo

+0

看看下面的內容:http://stackoverflow.com/questions/9266827/creating-a-master-template-in-codeigniter – Styxxy

回答

1

有幾個方法,你可以去這個問題,哪一個是有意義的(如果有的話全部)完全取決於個人意見。 (我的PHP非常生疏,我從未使用過CodeIgniter,所以這可能在語法上不準確,請考慮僞代碼演示。)

一種方法可能是創建更小的「輔助」函數,功能有點。類似這樣的:

public function view_classrooms() { 
    $this -> view_header_and_navigation(); 
    $this -> load -> view('classroom'); 
    $this -> view_footer(); 
} 

private function view_header_and_navigation() { 
    $this -> load -> view('header'); 
    $this -> load -> view('navigation'); 
} 

private function view_footer() { 
    $this -> load -> view('footer'); 
} 

儘管如此,在這種情況下,回報在迅速減少。它非常適合重構大型功能。

另一種方法可能是讓一個泛型函數:

public function view_something($content) { 
    $this -> load -> view('header'); 
    $this -> load -> view('navigation'); 
    $this -> load -> view($content); 
    $this -> load -> view('footer'); 
} 

當然這裏的權衡是在調用函數時,如果只有一點點你需要知道的實施細則。爲了解決您的問題,您可以創建代表功能:

public function view_courses() { 
    $this -> view_something('courses'); 
} 

但是,同樣,退貨可能會很快開始減少。

沒有什麼固有地您現在使用的方法有問題。 (除非這只是一個小例子,而且問題的規模要大得多。)每個視圖都是由其部分明確構建的。當然,這些部分經常重複。但是除了代碼美學外,這是否代表了一個實際問題?這段代碼是否經常改變以致有很多重複的工作?如果是這樣的話,在決定如何重構時,請仔細考慮重複的工作,而不僅僅是代碼美學。由於重複的工作是正在解決的實際問題,而不是代碼。

+0

縮短我的近距離投票。 1+在一個真棒的答案。反向徽章可能?的xD –