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

PHP & Base de données Discussion :

Organisation de fichiers PHP - MVC [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut Organisation de fichiers PHP - MVC
    Bonjour,

    Etant confronté à un site prenant une ampleur assez considérable, je migre celui-ci en MVC.

    Cependant, j'ai quelque soucis à comprendre la différence entre le contrôleur et le modèle

    Voici un exemple concret où je désirerais que l'on m'explique comment départager mon code entre un contrôleur et un modèle.

    P.S : Je ne pose que le minimum.

    1) je crée un classe de connexion avec des requêtes de bases

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <?php
    define('DB_HOST','localhost');
    define('DB_USER','****');
    define('DB_PASS','***');
    define('DB_NAME','****');
    class DbConnect{
        private $host = DB_HOST;
        private $user = DB_USER;
        private $pass = DB_PASS;
        private $dbname = DB_NAME;
        private $stmt;
        public $db;
     
        public function __construct(){
            $dsn = 'mysql:host='.$this->host.';dbname='.$this->dbname;
            $options = array(
                PDO::ATTR_PERSISTENT => true,
                PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
            );
            // Create a new PDO instanace
            try{
                $this->db = new PDO($dsn, $this->user, $this->pass, $options);
            }
            // Catch any errors
            catch(PDOException $e){
                die($e->getMessage());
            }
        }
        public function query($query){
            $this->stmt = $this->db->prepare($query);
        }
        public function execute(){
            return $this->stmt->execute();
        }
        public function resultset(){
            $this->execute();
            return $this->stmt->fetchAll(PDO::FETCH_OBJ);
        }
        public function single(){
            $this->execute();
            return $this->stmt->fetch(PDO::FETCH_OBJ);
        }    
    }
    ?>

    2) Mon login en entrée de la page d'accueil si pas de session ouverte:
    (C'est là ou j'ai du mal à différencier model et controller)

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $DB = new DbConnect();
    $error = '';
    if(!empty($_POST)){
        $DB->query('SELECT * FROM users WHERE u_login="admin"');
        $row = $DB->single();
        echo "<pre>";
        print_r($row);
        echo "</pre>";
    }else{
        $error .= ' Veuillez entrer vos identifiants'; 
    }

    Et ma partie view du mvc que je comprends.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form action="login" name="login" method="post">
        <input type="text" name="login">
        <input type="password" name="pswd">
        <input type="submit" value="Connexion">
    </form>
    Merci d'avance,
    David

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Je te donne un exemple : l'extraction des données de l'utilisateur relève du modèle, le contrôle de la validité du mot de passe saisi relève du contrôleur.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Oui, cela je l'ai lu partout. Mais c'est du Cambodgien pour moi. J'aimerai que de par mon exemple, que l'on m'explique. C'est pr cela que j'ai mis le mini minimum

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Ok, tiens à peu près la même question aujourd'hui ici
    Tu devrais voir la différence entre le contrôleur et le modèle qui ne font absolument pas la même chose.

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Merci rawsrc mais c'est MON message ;-)

    Ou alors ton lien n'est pas correct.

    Merci d'avance

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] utilisation javascript dans fichier php model mvc
    Par ramdamriddim dans le forum Langage
    Réponses: 3
    Dernier message: 19/05/2009, 14h57
  2. Ouvrir un fichier.php d'une ihm
    Par Shandler dans le forum MFC
    Réponses: 3
    Dernier message: 02/05/2005, 14h00
  3. Réponses: 2
    Dernier message: 19/08/2004, 17h12
  4. où se trouve le fichier php.ini ?
    Par teko dans le forum Apache
    Réponses: 5
    Dernier message: 28/07/2004, 12h39

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