Codeigniter如何使用工厂模式?

问题描述 投票:0回答:1

如何在 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();
}

但我没有获得工厂的实例

php codeigniter design-patterns factory
1个回答
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);

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

对于 exmaple,我的模型将简单地返回数据对象,然后我的库将检查 num_rows() 等,最后将 result() 对象或布尔值 FALSE 返回到我的控制器。

然后我的控制器可以执行简单的检查,例如 if ($my_object),所以它很干净。

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.