Ich habe grundlegende Fähigkeiten der OOP-Programmierung und ich versuche, eine sehr einfache MVC-Framework zu erstellen. Seltsamerweise ruft die Indexmethode sich selbst auf, wenn ich die App instanziiere und den Grund nicht herausfinden kann.Methode nennt sich selbst, wenn ich die Klasse instanziieren
Meine Indexdatei habe dies: $ app = new App();
Mein Bootstrap sieht wie folgt aus:
class App {
private $_controller = null;
public function __construct() {
$default_controller = 'controller/index.php';
require $default_controller;
$this->_controller = new Index();
}
}
Hier ist meine Haupt-Controller-Klasse:
class Controller {
public function loadModel($name) {
require('models/'. strtolower($name) .'.php');
$model = new $name;
return $model;
}
public function loadView($name) {
$view = new View($name);
return $view;
}
}
Meine Hauptmodellklasse:
class Model {
public function __construct() {
$this->db = new DB(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
}
}
Und hier ist meine Index-Klasse:
class Index extends Controller {
public function index() {
$example = $this->loadModel('Index_Model');
$something = $example->content('test');
$view = $this->loadView('index');
$view->set('content', $something);
$view->render();
}
}
In PHP 4 diente eine Methode mit dem gleichen Namen wie die Klasse als Konstruktor - und es wird immer noch als Kompatibilitäts-Fallback verwendet. (Groß-/Kleinschreibung in bestimmten Aspekten steht hier oben.) – CBroe
also, wenn die Klasse und ihre Methode denselben Namen haben, wird die Methode aufgerufen, wenn ich die Klasse instanziiere? – Dejavu