我已将普通的PHP类转换为库,因此我可以在Codeigniter中将其用作库。我可以加载它并调用该类中需要的函数。 Here is that class to help with the question。
但是,我必须在课堂上调用函数。这些函数驻留在实例化我的类的模型中。我怎么能这样做,因为目前正常的通话不起作用。这是我的代码:
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"];
}
}
感谢大家的帮助。
答案 0 :(得分:2)
为了澄清一下,您在调用传递给书签分析器的模型函数时遇到问题?
在您的资料库中,您需要通过以下方式参考模型本身及其功能:
// Based on the signature you provided
parseNetscape($url, $folderID, $urlFunction, $folderFunction) {
get_instance()->Controlpanel_model->$urlFunction();
get_instance()->Controlpanel_model->$folderFunction();
}
我们需要使用get_instance(),因为Libraries不会继承所有的CI好东西。 这将假设您的模型已加载。我不确定你遇到什么问题,引用$ CI实例或动态调用函数。
希望这就是你要找的东西。