Salut,
if (!isset($this->$name)) {
$this->$name = new $name();
// on va également envoyer dans le loadmodel le formulaire
if (isset($this->Form)) {
$this->$name->Form = $this->Form;
}
}
Imaginons avec ce code que $name = "monHelper".
On aurait
$this->monHelper = new monHelper();
Comment tu assignes une variable à ton objet si elle n'est pas prédéfinie avant ?
Est-ce que dans les variables de ta classe, t'as un
private $monHelper = null; ?
Plutôt que de faire un $this->name, tu devrais avoir une variable array contenant une liste de helper.
Genre
class MonControlleur{
private $mes_helpers = array();
public function loadModuleHelper($name) {
$file = ROOT . DS . 'module' . DS . 'mod_' . strtolower(substr($name, 0, -6)) . DS . ucfirst($name) . '.php';
require_once $file; // on évite d'inclure plusieurs fois le même model
//debug($name);
if (!array_key_exists($name, $this->mes_helpers)) {
$this->meshelpers$name] = new $name();
// on va également envoyer dans le loadmodel le formulaire
if (isset($this->Form)) {
$this->meshelpers$name]->Form = $this->Form;
}
}
}
}
Ça te corrigerait le problème ?
Bisous !