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 :

Séparation des couches et portabilité d'une requêtes SQL [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut Séparation des couches et portabilité d'une requêtes SQL
    Bonjour.

    J'ai un peu de difficulté à bien cerner ma séparation de structure mvc
    du côté de mes requêtes SQL.

    J'ai mis "abstract class Model extends pdo_mysql" dans le fichier modeles
    et l'extentiation dans la partie vue. Bon.. c'est bien ou mal?

    Aussi, je me demande si je pourrais plus rendre portable ma fonction :
    public function getAll() ci-bas. Là, je veux afficher tout mais je vais
    ajouter avec des critères au besoin.

    Je suis obligé de créer une 2e fonction qui se répète avec une critère
    en plus?

    J'ai mis mes codes pour faire mon MVC:
    dans \models\home.php
    Code : 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
    46
    47
     
    <?php
     
    class HomeModel extends BaseModel
    {
        //data passed to the home index view
        public function index()
        {   
            $this->viewModel->set("pageTitle","Accueil");
            return $this->viewModel;
        }
    }
     
    abstract class Model extends pdo_mysql {
        private $_conn;
        protected $_pk;
        public function __construct() {
            $this->_conn = pdo_mysql::pdo_connection();
        }
     
        // afficher tout
        public function getAll() {
            try{
                        $stmt = $this->_conn->prepare("SELECT * 
                                              FROM {$this->table}
                                              ");
                        $stmt->execute();
                        return $stmt->fetchAll(PDO::FETCH_OBJ);
     
            } catch (PDOException $est) {
                die("pdo connection error! ". $est->getMessage() ."<br/>");
            }
        }
    }
     
    // la table des artistes
    class Artistes extends Model {
        protected $table='artistes';
     
        public function __construct()
        {
            parent::__construct();
            //$this->_pk = 'id';
        }
    }
     
    ?>
    dans \views\home.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <h1>Liste des Artistes!</h1>
     
    <?php 
    $artistes = new Artistes();
    $artistes = $artistes->getAll();
     
    foreach ($artistes as $a) {
    echo $a->id .' ';    
    echo $a->nom .' ';    
    echo $a->prenom .'<br>';    
    }
    ?>
    Je souhaiterais une aide me donnant des indications du côté pratique.
    Ça serait apprécié.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    Citation Envoyé par dancom5 Voir le message
    J'ai un peu de difficulté à bien cerner ma séparation de structure mvc
    du côté de mes requêtes SQL.
    Bonjour,
    Pour créer son framework(stucture) mvc, il faut impérativement très bien maîtriser les objets et le développement http

    Puisque tu ne maîtrises pas ces cotés, ton code ne pourra être utilisé que pour son coté didactique et JAMAIS en production. Tu es comme un mécanicien débutant qui tente de construire son avion de chasse ! super coté didactique mais pas question de monter à bord

    ici, tu nous présentes uniquement le coté M (pour l'instant un embryon de moteur à vapeur )
    ton \views\home.php c'est tout sauf du mvc puisque tu mélanges vue et contrôleur


    ---------------
    donc, si ton avion n'a pas vocation à voler un jour, tu es sur la bonne voie sinon

    --------------
    tuto : http://bpesquet.developpez.com/tutor...hitecture-mvc/
    $moi= ( !== ) ? : ;

  3. #3
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par papajoker Voir le message
    ici, tu nous présentes uniquement le coté M (pour l'instant un embryon de moteur à vapeur )
    Oui, je sais. Je comprends le principe du MVC depuis le temps que je l'étudie. Le M, c'est la portion à laquelle que j'éprouve des difficultés.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  4. #4
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Bonjour.

    Comme le MVC est un peu trop avancé pour moi, je vais que me contenter de faire un peu de
    séparation du code PHP du code HTML et plus me concentrer sur la notion de base sur l'obejet.

    Je voudrais dire merci pour ce topic.

    Merci.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

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

Discussions similaires

  1. [WD19] Mixer des serveurs de données dans une requête SQL
    Par wd_newbie dans le forum WinDev
    Réponses: 4
    Dernier message: 22/12/2014, 16h36
  2. Java Geotools : Ajouter une nouvelle couche se basant sur une requête SQL
    Par cgi.vnf dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 07/07/2014, 14h37
  3. [SQL] Récupérer des variables de formulaire dans une requête SQL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2005, 18h44
  4. [Design] Séparation des couches
    Par brousaille dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 17
    Dernier message: 16/03/2005, 21h34
  5. Réponses: 4
    Dernier message: 16/03/2004, 14h16

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