IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

PHP MVC sans framework


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 80
    Par défaut PHP MVC sans framework
    Bonjour à tous,


    voilà j'ai dû développer un petit site pour l'école, mon site étant fini le prof me dit plus tard d'implémenter le modèle mvc, et je n'ai aucune envie de tout recommencer, est-ce qu'il est possible de procéder ainsi :

    Avant l’utilisation de MVC j'avais un dossier racine et tout mes fichier du site était dedans:

    Ce que je comptes faire maintenant : créer 3 dossier un vue,contrôleur,modèle :

    ensuite reprendre tout mes fichier d'avant et les placer dans le contrôleur, ensuite pour chaque fichier se trouvant dans le contrôleur j'en crée un identique dans la vue et dans le modèle par exemple j'aurai 3 fichier index.php un se trouvant dans le modèle un dans la vue et un dans le contrôleur, ensuite je reprend le code lie a la base de données et le place dans le modèle et place le code html dans la vue et j'inclus les 2 fichier index.php du modele et de la vue dans le fichier index.php du contrôleur ainsi de suite pour chaque fichier du contrôleur.


    est-ce une bonne manière de faire s'il vous plait? merci

    PS: je précise qu'il s'agit d'un petit site avec pas beaucoup de fichier.

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 104
    Par défaut
    Hmm j’ai l’impression que tu te compliques la vie, et que tu vois MVC comme quelque chose de plus compliqué que ça ne l’est.

    Pour commencer il te faut des templates. Ce seront les vues. Il s’agit de fichiers statiques contenant principalement du code HTML, mais avec des « trous », des parties qui seront à compléter par les contrôleurs. En résumé un template est une sorte de texte à trous. Tu peux leur donner une extension .html, .txt, .tpl ou ce que tu veux.

    Exemple tout simple :
    exemple.tpl
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="utf-8">
      <title>{titre}</title>
    </head>
    <body>
      <h1>{titre}</h1>
      <p>{message}</p>
    </body>
    </html>

    Dans ce template il y a deux parties à remplacer : {titre} et {message}. Dans le contrôleur tu utiliseras str_replace pour les repérer, ou une regexp pour des syntaxes plus complexes. Tu fais ce que tu veux car c’est toi qui choisis la syntaxe.

    Voici le contrôleur qui va avec mon exemple de template :
    exemple.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $template = file_get_contents('exemple.tpl');
     
    $titre = 'Bonjour';
    $message = 'Ceci est un exemple simple d’architecture MVC';
     
    $ouput = str_replace('{titre}', $titre, $template);
    $ouput = str_replace('{message}', $message, $output);
     
    echo $output;
    ?>

    Dans cet exemple le modèle est statique, il s’agit des variables $titre et $message. En situation réelle, bien entendu, le contenu de ces variables viendra de ta base de données. C’est donc la BDD qui représente l’aspect modèle.

    Pour répondre à tes questions : tu ne dois pas créer de dossier modèle puisque le modèle c’est les données qui sont dans ta base ; le code de connexion et de requête à la base fait partie du contrôleur.
    Tu crées autant de fichiers de vues que tu avais de pages avant la migration. Pour rester simple tu crées également un contrôleur pour chaque vue ; mais si tu maîtrises l’URL rewriting tu peux envisager de faire traiter des vues similaires par le même contrôleur. Garde ça en exercice pour quand tu seras plus à l’aise…

    J’espère que je suis assez clair
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 80
    Par défaut
    merci de ta réponse j'y vois un peu plus clair,

    mais voici un exemple de mon code que je ne vois pas comment découper en mvc, car il contient du code html qui doit être dans le dossier vue et du code de condition qui doivent être dans le controleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <?php if (isset($_SESSION['pseudo'])) { ?>
    				<td width="16%"> <a href="deconnection.php">  <img src="../images/deconnection1.png"/> Deconnection </a></td>
    				<?php } else { ?>
    				   <td width="16%"> <a href="connection_1.php"> <img src="../images/user2.png"/> Connection </a></td>
    					<?php } ?>

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Salut,

    Il y a un bon tuto ici. Il est progressif, très bien expliqué et assez complet avec un exemple fonctionnel

  5. #5
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 104
    Par défaut
    Baptiste Pesquet a une approche un peu différente de la mienne, il s’autorise à mettre du code PHP dans ses vues. Comme tu le vois il n’y a pas de limites bien définies, tu dois faire appel à ton jugement.

    Un certain nombre de frameworks proposent une syntaxe de template permettant d’y inclure des éléments dynamiques. On trouve un parfait exemple de ça sur la page d’accueil de Twig, le moteur de templating utilisé par Symfony. C’est plus compliqué à mettre en œuvre à la main, car ça demande que tu fasses de l’analyse syntaxique sur tes templates, et ainsi il y a de fortes chances que tu doives utiliser des regexps.

    Au final, le résultat est le même que si tu mets directement du code PHP dans la vue. L’avantage de définir un micro-langage de templates c’est que ça pose des limites, le micro-langage ne te permettra pas par exemple de changer la configuration du serveur ou de faire une requête SQL. Ça t’oblige à rester dans le domaine de ce qu’une vue est autorisée à faire.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Oui mais le templating est un problème que l'on peut dissocier du modèle MVC et faire les deux en partant de zéro me parait assez compliqué. Son prof lui a demandé un modèle MVC, à mon avis c'est bien de se concentrer sur ce sujet dans un premier temps.

Discussions similaires

  1. Modele d'architecture MVC sans framework
    Par sputnick dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/05/2011, 12h56
  2. Architecture MVC sans framework
    Par JLC83 dans le forum Langage
    Réponses: 5
    Dernier message: 19/08/2010, 11h29
  3. Utiliser le MVC sans framework
    Par rockt13 dans le forum Langage
    Réponses: 19
    Dernier message: 30/07/2010, 17h04
  4. Mise en place MVC sans framework dédié
    Par Pwill dans le forum Flex
    Réponses: 4
    Dernier message: 01/06/2010, 10h27
  5. [Framework] [PHP.MVC] Probleme de forward sur .tpl
    Par the_edge dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/03/2006, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo