我有一个类AdminMenu
,我用它来为我的项目的管理员创建菜单。这是课程:
class AdminMenu{
public $menu = array(
'Groups and Statuses' => 'groups',
'Members Management' => 'members',
'Book Manager' => 'books',
'Activity Log' => 'activities',
'Quiz Maker' => 'quiz',
'Other' => 'other'
);
public function AdminMenu() {
$html = "<nav><ul><li><input type='text' id='search' placeholder='Search' /></li>";
foreach($this->menu as $text => $link){
$html .= '<li><a href="'. site_url(array('admin', $link)) .'">'. $text .'</a></li>';
}
$html .= '</ul></nav>';
echo $html;
}
}
如您所见,构造函数正在回显数据,这很好。所以当我需要管理菜单时,我可以打电话new AdminMenu();
,它看起来很棒。
问题是,CodeIgniter 建议将类保存在libraries
目录中并像这样调用它:$this->load->library('adminMenu');
。问题是,由于某种原因,它在这里调用了构造函数,所以如果我加载它,然后再创建一个 new AdminMenu()
,构造函数一共被调用了 2 次,所以我有两个菜单。
加载库是否意味着调用构造函数,我在这里错了吗?我应该为输出创建不同的函数吗?或者我可以把它留在libraries
里面,就像一个包含的课程一样称呼它?
谢谢!