Ja das habe ich leider, sorry
.
Ich denke es würde ein Buch zu OOP reichen (falls du noch keines besitzt), das sich mit einem Kapitel für MVC beschäftigt. Wenn du andere andere Entwurfsmuster kennenlernen möchtest, dann greif dir natürlich gleich das ganze Sortiment. Kann dir allerdings nichts über das von dir vorgeschlagene Buch sagen.
Hab auf anhieb jetzt auch kein Tutorial finden können.
Kurz umschrieben gliedert sich ja MVC in Models, Views und Controllers.
Der Controller führt Funktionen (Methoden) einer Klasse aus und erhält meist nur als Rückgabewert true oder False, mehr nicht!
Keine Schleifen, kein if-else, keine Berechnungen...Nur Methodenaufrufe!
Das Model (je eine klasse), enthält die Methoden die vom Controller ausgeführt werden sollen und setzt diese um (wichtig dabei ist auch zu beachten, das Funktionen Atomar sein sollten, also sich wirklich nur um eine Aufgabe kümmern).
Der View enthält die Optischen Informationen und wird am Ende vom Controller geladen.
So kann ein MVC aussehen:
/index.php (Controller)
Code:
<?php
session_start();
include('models/datenbank.php');
include('models/class_helper.php');
include('models/class_bild.php');
$roteKreuz = new HelperFabrik;
$helper = $roteKreuz->anlegen();
$gallerie = new BildFabrik;
$bild = $gallerie->anlegen();
switch($_POST['aktion']) {
case 'upload':
try {
$bild->uploadAusfuehren();
} catch (Exception $e) {
print $e->getMessage();
}
$aktion = '_preview';
break;
case 'speichern':
$bild->eintragSpeichern();
$aktion = '_index';
break;
default:
$galerieIndex = $bild->galerieIndexLesen();
$aktion = '_index';
break;
}
include('views/galerie'.$aktion.'.tpl.html');
?>
/models/class_bild.php (Models)
Code:
<?php
class BildFabrik {
function anlegen() {
return new Bild();
}
}
class Bild {
/** Variablen ***************************/
/****************************************/
private $uploadOrdner = '';
private $tempOrdner = '';
private $gallerieOrdner = '';
private $datenbank = null;
/** Magische Methoden *******************/
/****************************************/
private function __construcht() {
}
/** Spezielle Methoden ******************/
/****************************************/
public function uploadAusfuehren() {
if (move_uploaded_file($_FILES['picture']['tmp_name'], $this->getUploadOrdner().$_FILES['picture']['name'])) {
$this->setOrginalDateiname($_FILES['picture']['name']);
} else {
throw new exception('Fehler beim Upload aufgetreten');
}
}
und jetzt nur noch das HTML-File, welches auf die Attribute eines Objekts zugreift.
Gruß Gerrit