Есть ли разница между методом helper и библиотекой, которые вызываются в Code igniter?

Я немного запутался, как методы библиотеки и помощника используются в Code igniter. Я все еще изучаю код igniter.

контроллер

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);
}

посмотреть

<?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' -->

в приведенном выше файле представления вспомогательный метод word_limiter() работает нормально. Но метод is_logged_in() не работает. Но если я это сделаю ($this->auth->is_logged_in()), он будет работать.

но почему метод от helper т. е. word_limiter() не обязательно писать так ($this->text->word_limiter()).

есть ли разница между методом helper и библиотекой, которые вызываются ?

2 ответов


помощник CodeIgniter-это набор связанных функций (общих функций), которые вы можете использовать в модели, вид, контроллеры,.. повсюду.

после загрузки (включения) этого файла, вы можете получить доступ к функциям.

но библиотека-это класс, который вам нужно сделать экземпляр класса (на $this->load->library()). И вам нужно будет использовать объект $this->... для вызова методов.

как большой палец правило: библиотека используется в объектно-ориентированном контексте (контроллер, ...), в то время как помощник более подходит для использования в вид (не объектно-ориентированных).


CI Helper может иметь или не иметь класс

но библиотека должна иметь представление класса.

обратитесь это так ответ

CodeIgniter: принятие решений для создания библиотеки и помощника в CodeIgniter