• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MVC mit PHP

nookie

I did it all for the nookie
Guten Tag,

ich habe vor kurzem angefangen mich mit MVC (Model, View, Controller) zu beschäftigen. Nun habe ich schon einige Tutorials durch Google gefunden. Meine Frage wäre nun ob jemand vielleicht aus eigener Erfahrung sagen kann, welche Tutorials am besten sind und welche die MVC Struktur am besten erklären. Da ich mich auch in naher Zukunft mit dem Zend Framework auseinander setzen will.

Vielen Dank im vorraus.
 
Werbung:
Wenn du schon ein wenig PHP kannst suche dir am besten irgendein schon existierendes Projekt und arbeite damit. Dabei lernt man am meisten. Bau dir z.b. eine Homepage mit Joomla oder einem anderen CMS welches auf Objektorientierung setzt.

Das beste Tutorial was es zu PHP gibt ist sonst immer noch wenn du einfach die ganzen Beiträge und Kommentare auf php.net liest. 5 Tutorials durchzuarbeiten lirber 5 mal auf php.net durchlesen wie es WIRKLICH funktioniert :p bleibt viel besser hängen wenn man sich da raussucht was einen wirklich interessiert.
 
Werbung:
Du kannst auch gerne nach verschiedenen Konzepten fragen. Ich bin mir sicher das ich dieses Wochenende ne halbwegs gute zusammenfassung einiger konzepte zusammenfassen könnte, so wie ich sie verstanden habe.

Was mir allerdings immer noch am komischsten vorkommt ist die einarbeitung des Views in ein MVC. An der Stelle könnten meine Beschreibungen also einigers von der allgemeinen Meinung abweichen. Mein konzept ist mehr ein MC mit Templates im C. :p Wohl auch nur weil ich bis jetzt noch nicht mehr gebraucht habe.

Naja guck dir erstmal an was du so im Internet dazu findest und ich gucke was sich machen lässt.
 
Du kannst auch gerne nach verschiedenen Konzepten fragen. Ich bin mir sicher das ich dieses Wochenende ne halbwegs gute zusammenfassung einiger konzepte zusammenfassen könnte, so wie ich sie verstanden habe.

Das Angebot würde ich gerne wahrnehmen.
 
Hi, also ich finde dieses tutorial hier ziemlich gut, was das Thema MVC angeht.
Und was mir persönlich noch weiter geholfen hat war sich mit einer template engine auseinander zu setzen wie Smarty oder Twig.
 
Werbung:
Welches Tutorial meinst du? Oder hast du den Link vergessen? ;) Ja von Smarty habe ich schonmal gelesen. Wollte ich mich auch noch bei Zeit mit auseinander setzen.
 
Guten Tag,

ich habe vor kurzem angefangen mich mit MVC (Model, View, Controller) zu beschäftigen. Nun habe ich schon einige Tutorials durch Google gefunden. Meine Frage wäre nun ob jemand vielleicht aus eigener Erfahrung sagen kann, welche Tutorials am besten sind und welche die MVC Struktur am besten erklären. Da ich mich auch in naher Zukunft mit dem Zend Framework auseinander setzen will.

Vielen Dank im vorraus.

Ich habe anfangs auch haufenweise Tutorials gelesen, in der Hoffnung selbst ein gutes MVC-Framework bauen zu können.
Nachdem ich mich so sehr in diesen MVC Begriff verbissen hatte, habe ich irgendwann bemerkt, dass MVC eigentlich ein total überbewerteter Begriff für ein einfaches und nicht ausreichend genau definiertes Konzept ist.

Deshalb ist es eigentlich gar nicht nötig sich genau mit dem Thema auseinanderzusetzen. Es reicht wenn man die jeweiligen Aufgabengebiete von M, V und C kennt. Letztlich wirst du mit dem Erlernen eines Frameworks ohnehin gezwungen, das zugehörige Pattern so zu lernen, wie es im jeweiligen Framework implementiert wurde - nicht wie es in irgendeinem Tutorial erklärt wird.

Meine größten Fortschritte habe ich erst nach dieser Erkenntnis gemacht.
Habe dann nicht mehr über MVC nachgedacht, sondern einfach mit den im Framework gegebenen Möglichkeiten gearbeitet.

Frameworks selber machen (Was als einziges umfassendes Wissen über Design Patterns voraussetzt) überlasse ich vorerst noch den Gurus ;)
 
Werbung:
Welches Tutorial meinst du? Oder hast du den Link vergessen? ;) Ja von Smarty habe ich schonmal gelesen. Wollte ich mich auch noch bei Zeit mit auseinander setzen.

Vergiss das alles. Diese MVC-Tutorials haben mit der heutigen Praxis etwa soviel zu tun wie der Adobe Workflow mit moderner Frontend-Entwicklung.

Wenn dich MVC in PHP interessiert, dann installiere ZF 2 und erstelle ein paar Projekte damit. Das Zusammenspiel von Modulen und Views, Controllern und Actions, Helpern und Routern erlernt man am besten durch praktische Anwendung.
 
Mist, ja habe den Link vergessen
War wohl zu früh

http://tutorials.lemme.at/mvc-mit-php/

Das Tutorial hatte ich mir auch schon angeschaut.

Vergiss das alles. Diese MVC-Tutorials haben mit der heutigen Praxis etwa soviel zu tun wie der Adobe Workflow mit moderner Frontend-Entwicklung.

Wenn dich MVC in PHP interessiert, dann installiere ZF 2 und erstelle ein paar Projekte damit. Das Zusammenspiel von Modulen und Views, Controllern und Actions, Helpern und Routern erlernt man am besten durch praktische Anwendung.

Habe ich bereits gemerkt und mir auch schon das Zend Framework 2 runtergeladen. Jedoch bisher noch keine Zeit gehabt mich daran zutasten.
Danke für alle Antworten. Das Thema kann vorerst als Erledigt betrachtet werden.
 
MVC und MVP Komponenten werden dir überall begegnen. Die leute hier haben schon recht damit dass man kein MVC bauen sollte sondern etwas, dass für die jeweilige Anwendung geeignet ist.
Allerdings ist es immer gut wenn man Models und Controller benutzt und wie man da die Templatelogik einbaut ist meist etwas freier definierbar.
Falls du dir Template Systeme angucken willst suche lieber nach meinem namen und Templates hier im Forum anstadt dich mit soetwas wie Smarty auseinander zu setzen. ;)
Lass dich von den ganzen kommentaren dazu aber nicht all zu sehr ablenken. Mach am besten einfach weiter mit deinem MVC ^^
 
Werbung:
MVC und MVP Komponenten werden dir überall begegnen. Die leute hier haben schon recht damit dass man kein MVC bauen sollte sondern etwas, dass für die jeweilige Anwendung geeignet ist.
Allerdings ist es immer gut wenn man Models und Controller benutzt und wie man da die Templatelogik einbaut ist meist etwas freier definierbar.
Falls du dir Template Systeme angucken willst suche lieber nach meinem namen und Templates hier im Forum anstadt dich mit soetwas wie Smarty auseinander zu setzen. ;)
Lass dich von den ganzen kommentaren dazu aber nicht all zu sehr ablenken. Mach am besten einfach weiter mit deinem MVC ^^

Werde mich dann wohl mal auf die Suche machen nach deinen Templates. Würdest du mir Smarty nicht empfehlen?
 
PHP wurde einmal als Templatesprache entwickelt. Es gab für mich bis jetzt keine logischen Gründe Smarty oder irgendein anderes Template System in PHP zu benutzen. Viele haben versucht mir ihre Gründe zu erklären aber es endet immer damit, dass ich sie für verrückt halte.

Ich kann dir meine Template Klasse sogar hier aufschreiben. Könnte sein, dass da ein kleiner fehler drin ist mit dem ganzen ob_ zeug weil ich mir das nicht merken kann und immer nachgucken muss welches davon ich nochmal brauche. Naja hier ist das schöne ding.

PHP:
<?php

class FileNotFoundException {
   
    public function __construct ($sFile) {
        parent::__construct("Could not find the file '" . $sFile . "'.");
    }
   
}

class Template {
   
    protected $_sFile = null;
   
    public function __construct ($sFile) {
        if (!file_exists($sFile)) {
            throw new FileNotFoundException($sFile);
        }
        $this->_sFile = $sFile;
    }
   
    // Das hier ist alles was du je brauchen wirst.
    // Wenn du ordentlich programmierst wirst du dich wundern,
    // wie selten du die Fetch funktion benötigen wirst.
    public function show () {
        include $this->_sFile;
    }
   
    public function fetch () {
        ob_end_flush();
        ob_start();
        $this->show();
        return ob_end_clean();
    }
   
}

// Benutzt wird das so

$oTemplate = new Template('templates/index.tpl.php');
$oTemplate->title   = "Testseite";
$oTemplate->message = "Diese Seite wurde aus einem Template erstellt.";
$oTemplate->show();

// templates/index.tpl.php
<!DOCTYPE html>
<html>
    <head>
        <title><?= $this->title ?></title>
    </head>
    <body>
        <p><?= $this->message ?></p>
    </body>
</html>
 
Also ich will niemanden eine Template Engine aufzwingen. Ich kann nu sagen, dass ich mit der Arbeit von Smarty das MVC Prinzip besser verstanden habe. Persönlich finde ich Smarty zu überladen, jedoch nutze ich es da ich beruflich damit zu tun habe und mich einfach damit etwas auskenne

Ich wollte aber zu der Variante von Slibbo noch anmerken lassen, dass die kurzform von echo ab Version 5.4.0 von PHP auch mit short_open_tag off funktioniert. Wenn man aber auf einem Webserver entwickelt auf dem PHP < 5.4.0 drauf ist musst du short_open_tag in der php.ini aktivieren. Ansonsten funktioniert <?= variable ?> nicht.

Und eine Sache hat sie noch, wenn du short_open_tag nicht aktivierst musst du natürlich bedenken wenn du in der tpl eine foreach durchlaufen lassen willst, musst du den php block mit <?php foreach... ?> eröffnen. Also muss man dran denken, das man da denn nicht <? foreach ?> benutzt
 
Werbung:
Zum glück ist es natürlicher weise auf "1" gesetzt. Sollte also kein Hinderniss sein.
Ich musste bei einem früheren Arbeitgeber auch Smarty verwenden B3nnoX, ich fühle mit dir. ;P
 
Danke Slibbo und B3nnoX, für die Tipps und Informationen. Habe mir nun endlich das ZF2 runtergeladen und installiert.
 
Zurück
Oben