2010-12-09 16 views
0

Je pense avoir les concepts de base de MVC, mais je ne sais pas où je devrais mettre ma "page d'accueil"? Par cela je veux dire par exemple la page qui viendrait si vous naviguez sur stackoverflow.com plutôt que quelque chose comme stackoverflow.com/questions qui a un contrôleur évident attaché (le contrôleur "questions").D'où vient la "page d'accueil" dans MVC?

J'ai une fonction qui détermine quel contrôleur utiliser en fonction d'une variable GET, mais je ne suis pas tout à fait sûr de savoir ce qu'il faut faire lorsque cette variable est manquante. Je pensais ajouter un define() comme un "chemin par défaut" mais je ne sais pas quoi utiliser. La page principale tombera dans une catégorie de pages, mais sera sa propre entité séparée. Pour utiliser l'exemple de stackoverflow, je peux router la page d'accueil vers le contrôleur 'questions', mais je ne sais pas quoi utiliser comme action. "Questions/frontpage" me semble être une mauvaise appellation

bizarre, mais je ne vois pas couvert dans un tutoriel MVC en ligne

Répondre

3

Vous utiliseriez une maison contrôleur général.

Si vous avez configuré le routage de base dans un fichier de type bootstrap, pointez simplement un blanc $_SERVER['REQUEST_URI'] ou similaire à votre contrôleur domestique.

0

la plupart des cadres MVC ont une sorte de route par défaut définie pour le chemin «/» Vous pouvez appeler le contrôleur tout sens;.. si rien d'autre, puis « principale » ou « par défaut » fin de travail. J'appelle généralement la « première page » de tout contrôleur « index ».

+0

Je n'utilise pas de cadre. Encore une fois en utilisant SO comme exemple, il y a une différence entre "stackoverflow.com" et "stackoverflow.com/questions" mais ce sont les deux pages "par défaut" qui montrent des listes de questions. Peut-être que la première page doit être son propre contrôleur, avec juste une action "index"? – Kristina

+0

Merde, je pense que je viens de faire une stupide réalisation Stackoverflow a aussi des "tags" qui sont des listes de questions, mais sont toujours séparés .. bien sûr tere serait un contrôleur juste pour la maison! Merci! – Kristina

+0

bien comment est votre routage mis en place?Avec SO vous avez simplement les deux routes pointant vers le même contrôleur/action. Vous devriez pouvoir le faire facilement. Je veux dire que si votre page d'accueil a besoin d'une logique complètement séparée (ce qui est le cas), elle peut appartenir à son propre contrôleur (comme je l'ai mentionné dans ma réponse, j'appelle habituellement 'core' ou' default'). – prodigitalson

0

Eh bien, ça pourrait être n'importe quoi. U normalement utiliser Symfony ou Zend et j'ai un module/contrôleur appelé default ou core et en général la page d'accueil est l'action index dans ce module/contrôleur. Ensuite, dans ma configuration de routage, je spécifie cela comme route par défaut en utilisant '/' ou autre comme URL de routage.

1

La plupart des frameworks MVC mappent un contrôleur sans une "action" spécifiée à la fonction "index()" dans le contrôleur, une sorte de comportement par défaut.

dans le cas de Kohana, un appel à

http://mysite.com 

est effectivement mis en correspondance avec le « contrôleur par défaut » (spécifié dans un fichier de configuration, vous pouvez nommer le contrôleur comme bon vous semble) et un « index() » fonction dans le contrôleur.

0

La page par défaut est "index.html". Si vous avez un "index.html" dans votre répertoire racine "www" c'est la page qui sera affichée s'il n'y a rien d'autre que l'adresse du site web sur l'url de la requête.

Vous pouvez modifier le fichier de configuration apache (pas sûr de ASP) pour faire une autre page ou un script par défaut, ou, pour faire l'index. (Php | jsp | *) votre défaut.

Cela dépend de circonstances, mais je vous recommande normalement d'avoir une page statique "index.html" qui contient des liens vers les parties dynamiques de votre site web.