Hi,
habe eine Verständnisfrage zu MVC. Ich habe einen Skript, bei dem ich gerne die MVC-Struktur anwenden würde. Ich habe die meisten Klassen, die Daten aus der Datenbank benötigen etwa so aufgebaut:
Die Dateien, die aufgerufen werden sehen etwa so aus:
Wenn ich jetzt Einen Controller einfüge muss ich das ganze dann folgendermaßen machen??
Und aufrufen dann folgendermaßen??
Also nochmal kurz und knapp:
1. Kann ich meine Klassen in der Struktur wie oben weiterverwenden oder sollte ich nochmal komplett von vorne beginnen?? Also muss ich umbedingt neuanfangen oder reicht es bei den nächsten Projekten etwas anders an die Sache rangehen??
2. Habe ich es einigermaßen korrekt verstanden oder lebe ich in meiner eigenen Welt
Hoffe das die Fragen gut verständlich formuliert sind!
Thx und mfg
Yanko
habe eine Verständnisfrage zu MVC. Ich habe einen Skript, bei dem ich gerne die MVC-Struktur anwenden würde. Ich habe die meisten Klassen, die Daten aus der Datenbank benötigen etwa so aufgebaut:
PHP-Code:
class Page_News_Entry
{
protected $title;
protected $content;
...
public function __construct()
{
$this->db_connection = Page_Registry::get_('db_connection_news');
}
public function init($entry_id)
{
//Holt Infos aus der Datenbank
}
//Methoden zum erstellen von neuen Einträgen, bearbeiten, ...
//Getter und Settermethoden
PHP-Code:
//Autoloader initialisieren, configs einbinden, session starten,...
//Smarty initialisieren
switch($_GET['mode'])
{
case 'overview':
{
$overview = new Page_News_Overview();
$overview->init();
$smarty->assign('news', $overview->get_news());
$smarty->display('overview.tpl');
break;
}
...
}
PHP-Code:
class Page_News_Controller
{
protected $view; //Smarty in meinem fall
protected $data; // Das Page_News_Overview oder News_... Objekt??
protected $request;
public function __construct($request)
{
$this->request = $request;
}
public function display($view)
{
$this->view = $view;
$this->view->assign('header', $this->view->fetch('header.tpl'));
$this->view->assign('footer', $this->view->fetch('footer.tpl'));
switch($this->request['mode'])
{
case 'overview':
{
$this->data = new Page_News_Overview();
$this->data->init();
$this->view->assign('news', $this->data->get_news());
$this->view->assign('content', $this->view->fetch('overview.tpl'));
break;
}
}
$this->view->display('default_template.tpl');
}
PHP-Code:
//Autoloader initialisieren, configs einbinden, session starten,...
//Smarty initialisieren
$controller = new Page_News_Controller($_GET);
$controller->display($smarty);
1. Kann ich meine Klassen in der Struktur wie oben weiterverwenden oder sollte ich nochmal komplett von vorne beginnen?? Also muss ich umbedingt neuanfangen oder reicht es bei den nächsten Projekten etwas anders an die Sache rangehen??
2. Habe ich es einigermaßen korrekt verstanden oder lebe ich in meiner eigenen Welt

Hoffe das die Fragen gut verständlich formuliert sind!
Thx und mfg
Yanko
Kommentar