Voici les bases de mon cadre:Dynamiquement classe de charge pour un accès global (comme CodeIgniter ne)
class CPU {
public function load_class($class) {
include_once($class . ".php");
$this->$class = new $class;
}
public function load_controller($class) {
include_once($class . ".php");
$class = new $class;
$class->index();
}
public function run() {
// Load DB class
$this->load_class("DB");
// Load controller
$this->load_controller("About");
}
}
class About extends CPU {
public function index() {
$this->DB->connect();
}
}
Lorsque run()
est appelé à charger la classe About
, l'accès $DB
donne l'erreur ci-dessous:
Erreur fatale: Appel à une fonction membre connect() sur un non-objet
Je suppose que j'ai besoin d'utiliser un singleton pour créer la classe dynamiquement. CodeIgniter fonctionne de la même manière, mais je ne peux pas déterminer ce que je dois faire pour modifier mon cadre pour que cela fonctionne.
Je ne vois aucun appel à 'run()' dans votre code. Edit: ne tenez pas compte de cela, j'ai mal lu. Définissez 'error_reporting (E_ALL);'. Je suppose que le modèle et le contrôleur ne sont pas dans le même dossier avec le processeur, non? – mhitza