Codeigniter如何使用工厂模式?

时间:2013-08-31 22:46:27

标签: codeigniter design-patterns factory

如何在codeigniter中使用工厂类调用。我一直在尝试将以下内容实现为库

class MyClass {

    public $_class = "Factory";

    /*
      ===================================
      On Create
      =================================== */

    public function __construct() {

        $this->_db =& get_instance();

}
    //other methods
}

class Factory {

    private $_db;
    /*
      ===================================
      On Create
      =================================== */

    public function __construct($data, $db) { 
      $this->_db = $db; 
}
//factory methods
}

$obj = new MyClass();
$res = $obj->call_method_MyClass();

而不是说我在已审核的数据上做了一个循环

foreach($res as $Factory){

$Factory->method_factory();
}

但我没有得到工厂的实例

1 个答案:

答案 0 :(得分:0)

我只是遵循正常的库模式,基本上是用户指南中描述的 - 它的工作方式与您希望的相同:

class Factory {
  function __construct() {
    $this->CI =& get_instance();
  }

  function get_factory_item() {
    return $factory_item;
  }
}

然后在您的控制器中,您可以调用它(如果已加载):

$this->factory->get_factory_item();

如果您需要从库中调用模型或任何Codeigniter内容,您可以:

$this->CI->My_model->get_something($parameter);

然后您可以将其返回给控制器。我更喜欢使用图书馆(或你可以说的工厂)完成所有繁重的工作。

例如,我的模型将只返回数据对象,然后我的库将检查num_rows()等,最后将result()对象或布尔值FALSE返回给我的控制器。

然后我的控制器可以像if($ my_object)一样进行简单的检查,这样它很干净。

希望这有帮助。

相关问题