Modele mvc

Fermé
jordxnnnnnn - 17 mai 2013 à 23:37
 raoultowarez - 22 mars 2014 à 09:32
Bonjour,


J'ai créer une page index qui est commune a chaque page de mon site sauf que je ne sais pas faire de liens :
(exemple, l'utilisateur clique sur menu, la page menu devrait souvrir : index.php?module.main&actions=menu)

Je ne sais pas du tout comment faire....

Merci bcp

Le code:
if(isset($_GET['module'])) $module = $_GET['module'];
else {
$module="main";$action='index';
}

if(isset($_GET['action'])) $action = $_GET['action'];
else {
if(!isset($action)) $action="index";
}
try {
include "modules/$module/actions/".$module."Actions.class.php";
$class=$module."Actions";
$m = new $class();
$result = $m->execute($action);
}catch(Exception $e) {
echo "Probleme";
}
?>
A voir également:

2 réponses

Ysabe_l Messages postés 12497 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 6 juin 2024 274
18 mai 2013 à 00:22
C'est normal que tes if n'aient pas de crochet ?

Sinon pour les menus je fais simplement un truc du genre :

if (isset($_GET['action']))
{
	if ($_GET['action'] == "accueil")
	{
		include("accueil.php");
	}
	elseif ($_GET['action'] == "page1")
	{
		include("page1.php");
	}
	elseif ($_GET['action'] == "page2")
	{
		include("page2.php");
	}
	elseif ($_GET['action'] == "page3")
	{
		include("page3.php");
	}
	else
	{
		include("404.php");
	}
}
else
{
	include("accueil.php");
}
0
jordxnnnnnn
18 mai 2013 à 20:47
Merci de ta réponse,
Vu qu'il y avait qu'une instruction j'ai pas jugé utile les crochets...
Mais si l'utilisateur clique sur un lien faut que je test avec un get ?
0
jordxnnnnnn
18 mai 2013 à 21:44
Je ne comprends pas du tout la création de liens...
Comment adapter ce code au mvc svp :

<a href="admin/php" > Admins </a>

Si il clique dessus sa execute quoi ?
Je suis perdu :(
0
jordxnnnnnn
18 mai 2013 à 21:46
J'ai essayé :
if ($action == "admin")
{
include("admin.php");
}
Mais sa m'ouvre admins.php sauf que je devrais avoir un lien du style : index.php?mainsActions=Admins

Help please
0
Ysabe_l Messages postés 12497 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 6 juin 2024 274
19 mai 2013 à 12:57
Dans mes connaissances actuelles je ne sais pas ce que c'est le mvc. En fait je ne vais étudier le php que l'année prochaine, j'ai juste quelques connaissances autodidactes apprises pour un stage.

Donc d'après mes connaissances je ne sais pas à quoi correspond ton module.main dans l'url que tu donnes :

index.php?module.main&actions=menu


Quand je mets un menu comme je te l'ai donné au dessus j'ai bien une URL de type

index.php?page=accueil


Je ne comprends pas du tout la création de liens...
Comment adapter ce code au mvc svp :

<a href="admin/php" > Admins </a>

Si il clique dessus sa execute quoi ?
Je suis perdu :(


là ça dépasse clairement mes connaissances vu que je n'ai pas compris la question. Pour moi ça n'a rien à exécuter et un lien se crée avec la même logique que le html puisque le php sert à générer du html.
0
chaanbi22 Messages postés 2 Date d'inscription vendredi 21 mars 2014 Statut Membre Dernière intervention 30 mars 2014
22 mars 2014 à 00:13
voilà un vidéo superbe qui parle du sujet
http://www.bestvideos36.com/view.php?id=2EYzb3kjIDk
0
Salut,
le MVC c'est avant tout séparer les 3 parties indiqué par le modèle(pattern) MVC:
Le Modèle contient tout ce qui concerne les informations utilisé et leur traitement.
La Vue c'est l'affichage.
Le Contrôleur (ou manager) celui qui gère toutes les actions et coordonne l'ensemble.
MVC est objet, d'abord une façon de concevoir puis de programmer et non l'inverse.

Donc à votre question :

"Je ne comprends pas du tout la création de liens...
Comment adapter ce code au mvc svp : "

Vous parlez de l'affichage(HTML, CSS) il s'agit de la partie VUE.

Dans tout MVC vous avez au moins 3 fichiers de programmation pour chaque partie.
La partie VUE contient les OBJETS qui permettent d'afficher ce qu'on veut, ce qu'on veut est fourni par le Modèle(métier:les fonctionnalités et applications du besoin)
le fichier Contrôleur est le réalisateur qui dit à ses acteurs d'agir pour obtenir un résultat, le chef d'orchestre qui commande au musiciens divers pour avoir un résultat.

Si vous ne faites pas cela c'est inutile de faire du MVC.

En terme de programmation en Programmation Orienté Objet on utilise des méthodes qui sont les fonctions internes destiné à chaque objet.
Un objet représente donc une entité homogène, un regroupement de plusieurs choses sur un même thème.
Par exemple l'objet Voiture aura un moteur, des sièges des roues. L'objet voiture contient aussi le moyen d'avancer, reculer, afficher la vitesse, ouvrir la porte etc...

Pour un site web le MVC donne 3 zones distinctes. Ces zones distinctes vont elles même contenir les objets qui lui sont propres.
L'objet page web qui fait partie de la Vue aura au moins une caractéristique qui est le lien (tout comme la voiture à un volant et des roues).

Concrètement votre objet correspondant à une page contiendras une méthode de type accesseur(internalisation du code en POO permet la sécurité de celui ci) dont son expression en code PHP serait une méthode(fonction interne à un objet)du genre:

afficher_lien($lien){
echo "<a href='".$lien."'>lien ici</a>";

}

Bref la réponse à votre question est simplement d'utiliser la fonction echo mais si vous parlez MVC ceci Doit l'être dans une conception qui est régit par le dit modèle (MVC) donc pour toujours ramené au code qui est la dernière partie de l'utilisation de la POO et du MVC(et sa plus accessoire) fonctionnera comme ceci:

Modèle: C'est le métier qui concerne mon sujet, les informations et actions à faire.
//-- on construit la voiture avec son moteur et ses sièges, ses roues...

Contrôleur: Le besoin me dit d'agir, je vais chercher mon Modèle et le faire fonctionner
//-- quelqu'un va utiliser la voiture, le contrôleur est le pilote, l'ordonnateur d'action du programme(voir aussi observeur observé, événementiel+UML)

Vue: Le traitement d'une opération à besoin d'une retranscription, celle ci a lieu
//-- Il y a un résultat par rapport à une action: la porte est ouverte, le moteur démarre, le moteur est alimenté en essence monte dans les tours, les freins agissent sur la vitesse...
(bon l'analogie avec la voiture à ses limites et n'est pas exacte mais seulement représentative, je l'ai mise quand même car elle représente certains aspect bien qu'elle soit en contradiction avec d'autres points du MVC; la vue n'est pas faire avancer la voiture ce serait plutôt le modèle, la vue correspond en fait à la couleur de la carrosserie, le nombre de sièges et le contrôleur n'ets pas le conducteur strictement non plus).


L'intérêt du MVC est qu'en séparant chacune de ses parties on les rends indépendantes.
Ainsi si vous voulez utiliser le même design pour plusieurs sites vous gardez la VUE en utilisant un Modèle différent, lorsque que le programme nécessite des améliorations ou modifications des fonctionnalités il suffit de modifier le modèle ou le contrôleur (selon ce qui est concerné) et la vue reste inchangée, on peut garder les mêmes fonctionnalités en ayant plusieurs médias ou design différents(modifier la vue+le traitement objet avec l'héritage)....
Le MVC et plus généralement la Programmation Objet assure que le programme reste modulaire et modifiable sans avoir à tout refaire.
0