2014-02-10 5 views
8

Ich bin ein wenig verwirrt, wie die Methoden der Bibliothek und Helfer in Code-Zünder verwendet werden. Ich lerne immer noch Code-Zünder.Gibt es einen Unterschied zwischen der Methode des Helfers und der Bibliothek, die im Code-Zünder aufgerufen werden?

CONTROLLER

function index(){ 
    $this->load->helper('text'); 
    $this->load->library('auth'); //custom library 

    $data['string'] = 'this is sample ..... this is sample'; 
    $this->load->view('article', $data); 
} 

VIEW

<?php 
if(is_logged_in()){ //is_logged_in() is the method from the library, 'auth' 
    echo 'You are logged in'; 
} 
<p><?php echo word_limiter($string, 10); ?></p> <!--word_limiter() is the method from the helper, 'text' --> 

In der obigen Ansichtsdatei, die Hilfsmethode word_limiter() gut funktioniert. Aber die Methode is_logged_in() funktioniert nicht. Aber wenn ich das tue ($this->auth->is_logged_in()), wird es funktionieren.

Aber warum muss die Methode von Helfer d. H. word_limiter() nicht so geschrieben werden ($this->text->word_limiter()).

Gibt es einen Unterschied zwischen der Methode von Helfer und Bibliothek aufgerufen werden?

Antwort

20

Ein CodeIgniter Helfer eine Reihe von verwandten Funktionen (Common-Funktionen) Antwort, die Sie sie innerhalb Models, Ansichten, Controller, verwenden könnte .. überall.

Sobald Sie diese Datei laden (einschließen), können Sie auf die Funktionen zugreifen.

Aber eine Bibliothek ist eine Klasse, die Sie benötigen, um eine Instanz der Klasse zu erstellen (von $this->load->library()). Und Sie müssen das Objekt $this->... verwenden, um die Methoden aufzurufen.

Als Faustregel gilt: Eine Bibliothek in objektorientierten Kontext verwendet wird (Controller, ...), während ein Helfer besser geeignet ist (nicht objektorientiert) innerhalb der Ansichten verwendet zu werden.