2010-12-09 5 views
0

Ich denke, ich bekomme die grundlegenden Konzepte von MVC, aber ich bin mir nicht sicher, wo ich meine "Homepage" setzen soll? Damit meine ich zum Beispiel die Seite, die auftauchen würde, wenn Sie zu stackoverflow.com navigieren anstatt etwas wie stackoverflow.com/questions, das einen offensichtlichen Controller hat (den "Fragen" -Controller).Wo passt die "Titelseite" in MVC?

Ich habe eine Funktion, die bestimmt, welcher Controller basierend auf einer GET-Variablen verwendet wird, aber ich bin mir nicht sicher, was ich machen soll, wenn diese Variable fehlt. Ich habe darüber nachgedacht, eine define() für einen "Standardpfad" hinzuzufügen, aber ich bin mir nicht sicher, was ich verwenden soll. Die Hauptseite wird in eine Kategorie von Seiten fallen, wird jedoch ihre eigene separate Einheit sein. Um stackoverflow als Beispiel zu verwenden, könnte ich die Startseite an den "Fragen" -Controller weiterleiten, weiß aber nicht, was ich als Aktion verwenden soll. "Questions/frontpage" scheint mir ein schlechter Name zu sein.

Ungerade, aber ich sehe das nicht in einem MVC-Tutorial online

Antwort

3

Sie ein Hause Controller verwenden würden, in der Regel.

Wenn Sie grundlegende Routing-Einstellungen in einer Bootstrap-Datei haben, zeigen Sie einfach eine leere Stelle $_SERVER['REQUEST_URI'] oder ähnlich zu Ihrem Heim-Controller.

0

Die meisten MVC-Frameworks haben eine Art Standardroute für den Pfad '/' definiert.Sie ​​können den Controller nennen, was Sinn macht, wenn nichts anderes, „main“ oder „default“ funktionieren. ich nenne der Regel die „Titelseite“ eines jeden Controller „Index“ dann.

+0

Ich verwende kein Framework. Bei der erneuten Verwendung von SO als Beispiel gibt es einen Unterschied zwischen "stackoverflow.com" und "stackoverflow.com/questions", aber sie sind beide "Standard" -Seiten, die eine Liste mit Fragen enthalten. Vielleicht muss die Titelseite ein eigener Controller sein, mit nur einer "Index" -Aktion? – Kristina

+0

Scheiße, ich denke, ich habe gerade eine dumme Erkenntnis gemacht. Stackoverflow hat auch "Tags", die Listen von Fragen sind, aber immer noch getrennt .. von Natürlich wäre ein Controller nur für zu Hause! Danke! – Kristina

+0

Nun, wie ist Ihr Routing eingerichtet?Mit SO haben Sie einfach die zwei Routen auf den gleichen Controller/Aktion zeigen. Das solltest du leicht machen können. Ich meine, wenn deine Homepage eine komplett eigene Logik braucht (was sie tut), dann kann sie in ihren eigenen separaten Controller gehören (was ich, wie ich in meiner Antwort erwähnt habe, normalerweise 'core' oder' default' nenne). – prodigitalson

0

Nun, es könnte alles sein. U normalerweise verwenden Symfony oder Zend und ich habe eine Modul/Controller namens default oder core und im Allgemeinen die Startseite ist die index Aktion in diesem Modul/Controller. In meiner Routing-Konfiguration spezifiziere ich dies als Standardroute mit '/' oder was auch immer als Routing-URL.

1

Die meisten MVC-Frameworks bilden einen Controller ohne eine "Aktion" ab, die für die Funktion "index()" innerhalb des Controllers angegeben wurde, eine Art Standardverhalten.

in Kohana Fall, ein Aufruf an

http://mysite.com 

tatsächlich auf die "Standard-Controller" abgebildet wird (in einer Konfigurationsdatei angegeben haben, können Sie den Controller nennen wie Sie wollen) und einen "Index()" Funktion innerhalb der Steuerung.

0

Die Standardseite ist standardmäßig "index.html". Wenn Sie eine "index.html" in Ihrem root "www" -Verzeichnis haben, ist dies die Seite, die angezeigt wird, wenn nur die Websiteadresse auf der Anfrage-URL vorhanden ist.

Sie können die Apache-Konfigurationsdatei (nicht sicher über ASP) zwicken, um eine andere Seite oder ein Skript als Standard zu definieren, oder, um einen Index zu erstellen (php | jsp | *).

Hängt von circunstances ab, aber ich würde normalerweise empfehlen, dass Sie eine statische "index.html" Seite haben, die Links zu den dynamischen Teilen Ihrer Website enthält.

Verwandte Themen