【发布时间】:2011-03-22 20:13:29
【问题描述】:
我正在尝试在我创建的类中使用单例模式。我正在使用 CodeIgniter,它似乎要求所有模型对象的构造函数都是公开的。
有没有办法解决这个问题?如果我不能使用单例模式,最好的方法是什么?
我的班级:
class RakebackSites extends CI_Model {
private $allSites = array();
private function __construct() {
parent::__construct();
self::initAllSites();
}
public static function getInstance() {
if(empty(self::$instance)) {
self::$instance = new CurrencyTypes();
}
return self::$instance;
}
private function initAllSites() {
$sql = "SELECT * FROM rakeback_sites";
$this->db->query($sql);
foreach ($q->result() as $row) {
$allSites[] = new RBSite($row->id, $row->name, $row->logo, $row->rakeback, $row->sign_up_bonus, $row->sign_up_bonus_currency, $row->referral_code, $row->id);
}
}
public function getAllSites() {
return $this->allSites;
}
}
我得到的错误:
致命错误:RakebackSites::__construct() 的访问级别必须在 /home/.../application/models/rakebacksites.php 第 29 行中公开(如 CI_Model 类)
【问题讨论】:
标签: codeigniter singleton