2013-08-31 3 views
2

Comment utiliser les classes de fabrique appelez-codeigniter. J'ai ai essayé de mettre en œuvre ce qui suit comme bibliothèqueCodigniter comment utiliser le modèle d'usine?

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(); 

que de laisser dire que je fais une boucle sur les données ren- voyées

foreach($res as $Factory){ 

$Factory->method_factory(); 
} 

mais je ne suis pas une instance à l'usine

+1

Qu'attendez-vous de se produire lorsque vous exécutez le code ci-dessus? –

Répondre

0

I Il suffit de suivre le modèle de bibliothèque normal, essentiellement ce qui est décrit dans le Guide de l'utilisateur - il fonctionne de la même manière que vous l'espérez:

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

    function get_factory_item() { 
    return $factory_item; 
    } 
} 

Ensuite, dans votre contrôleur, vous pouvez simplement l'appeler (si elle est chargée):

$this->factory->get_factory_item(); 

Si vous avez besoin d'appeler un modèle ou d'une substance Codeigniter former la bibliothèque, vous devez:

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

Ensuite, vous pouvez le renvoyer au contrôleur. Je préfère utiliser des bibliothèques (ou des usines que vous pourriez dire) pour faire tout mon travail. Pour exmaple, mon modèle retournera simplement l'objet de données, alors ma bibliothèque vérifiera num_rows() etc. et retournera finalement l'objet result() ou un FALSE booléen à mon contrôleur.

Ensuite, mon contrôleur peut faire des contrôles simples, comme si (mon_objet de $) il est donc agréable et propre.

Espérons que cela aide.

+0

pour une fois que je l'utilise Laravel et ne l'utilise pas vraiment Codeigniter mais semble logique que u décrivent – fefe

Questions connexes