Вызов функций модели из библиотеки - PullRequest
0 голосов
/ 28 марта 2010

Я превратил обычный класс PHP в библиотеку, чтобы использовать его в Codeigniter в качестве библиотеки. Я могу загрузить его и вызвать нужные мне функции в этом классе. Вот этот класс, чтобы помочь с вопросом .

Однако, есть довольно много моментов, когда я должен вызывать функции в моем классе. Эти функции находятся в модели, которая создала экземпляр моего класса. Как я могу это сделать, так как в настоящее время обычные звонки не работают. Вот мой код:


class Controlpanel_model extends Model {

    var $category = '';
    var $dataa = 'a';

    function Controlpanel_model(){      

        parent::Model();

    }

    function import_browser_bookmarks(){

        $this->load->library('BookmarkParser');
        /*
        *In this function call to the class I pass 
        * what model functions exist that it should call
        * You can view how this done by clicking the link above and looking at line 383
        */
        $this->bookmarkparser->parseNetscape("./bookmarks.html", 0, 'myURL', 'myFolder'); 
        return $this->dataa;

    }

    function myURL($data, $depth, $no) { 

        $category = $this->category;
        $this->dataa .= 'Tag = '.$category.'<br />'.'URL = '.$data["url"].'<br />'.'Title = '.$data["descr"].'<br />'.'<br /><br />';
    } 

    function myFolder($data, $depth, $no) {

        $this->category = $data["name"];

    }   

}

Спасибо всем за любую помощь.

1 Ответ

2 голосов
/ 29 марта 2010

Просто чтобы уточнить, у вас проблемы с вызовом функций модели, переданных в ваш bookmarkparser?

Внутри вашей библиотеки вам нужно ссылаться на саму модель и ее функции через:

// Based on the signature you provided
parseNetscape($url, $folderID, $urlFunction, $folderFunction) {
   get_instance()->Controlpanel_model->$urlFunction();
   get_instance()->Controlpanel_model->$folderFunction();
}

Нам нужно использовать get_instance (), поскольку библиотеки не наследуют все вкусности CI. Это будет предполагать, что ваша модель уже была загружена. Я не уверен, с чем у вас возникли проблемы: ссылка на экземпляр $ CI или динамический вызов функций.

Надеюсь, это то, что вы искали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...