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 :

Classes simples et base de données


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut Classes simples et base de données
    Bonsoir,

    Je débute tout juste le PHP et MySQL (depuis quelques jours), mais j'avais déjà pas mal d'expérience en C++, et, de ce fait, je tends à tout penser en terme d'objets, même en PHP.

    Première question > Peux-t'on penser en PHP de la même façon que dans un autre langage objet, ou y a t-il des considérations à prendre en compte ?

    Deuxième question > Le point qui me rebute le plus pour le moment est la gestion des bases de données. Par exemple, imaginons une simple classe User qui gère un utilisateur, avec un destructeur permettant de définir le login et le mot de passe, et une fonction SetPassword permettant de changer le mot de passe. Est-il censé (et bien) de directement appeler dans le constructeur et la fonction SetPassword (de manière générale, dans n'importe quelle méthode d'une classe), les requêtes SQL ? Ou alors est-ce mieux de récupérer les données en dehors de la classe pour effectuer les requêtes en dehors de la classe ?

    Merci de vos réponses.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Citation Envoyé par Bakura Voir le message
    Première question > Peux-t'on penser en PHP de la même façon que dans un autre langage objet, ou y a t-il des considérations à prendre en compte ?
    Oui tu peux tout faire en PHP mise a part la surcharge des methodes et des petites trucs. Mais l'essentiel est bien là.
    http://www.php.net/manual/fr/language.oop5.php


    Citation Envoyé par Bakura Voir le message
    Deuxième question > Le point qui me rebute le plus pour le moment est la gestion des bases de données. Par exemple, imaginons une simple classe User qui gère un utilisateur, avec un destructeur permettant de définir le login et le mot de passe, et une fonction SetPassword permettant de changer le mot de passe. Est-il censé (et bien) de directement appeler dans le constructeur et la fonction SetPassword (de manière générale, dans n'importe quelle méthode d'une classe), les requêtes SQL ? Ou alors est-ce mieux de récupérer les données en dehors de la classe pour effectuer les requêtes en dehors de la classe ?
    Ca c'est pas lié à PHP, c'est plus un problème de conception. Ca dépendra beaucoup du niveau d'abstraction que tu veux mettre en place.
    Tu peux très bien avoir toutes les requetes dans ta classe. Ou bien créer une classe DB qui s'occupe des accés à ta base. Ou encore utiliser le pattern Active Record http://fr.wikipedia.org/wiki/Active_..._conception%29
    Tu as une multitude de choix.

  3. #3
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Oui tu peux tout faire en PHP mise a part la surcharge des methodes et des petites trucs. Mais l'essentiel est bien là.
    http://www.php.net/manual/fr/language.oop5.php
    Ce n'était pas vraiment les fonctionnalités objet du PHP que je souhaitais savoir (le bouquin que j'ai, PHP 5 Avancé, explique ça plutôt bien, je ne me suis jamais servi de l'héritage multiple, de toute façon), mais plutôt s'il y avait des choses à éviter à faire (par exemple, j'ai tendance à encapsuler le plus possible en C++, est-ce qu'il y a des cas en PHP ou l'encapsulation est à proscrire ? Mais effectivement il s'agit plus d'une question de conception.

    Ca c'est pas lié à PHP, c'est plus un problème de conception. Ca dépendra beaucoup du niveau d'abstraction que tu veux mettre en place.
    Tu peux très bien avoir toutes les requetes dans ta classe. Ou bien créer une classe DB qui s'occupe des accés à ta base. Ou encore utiliser le pattern Active Record http://fr.wikipedia.org/wiki/Active_..._conception%29
    Tu as une multitude de choix.
    Merci pour le pattern, je vais voir ça .

Discussions similaires

  1. Classes de la base de donnée introuvable à l'exécution
    Par xavynfive dans le forum Langage
    Réponses: 12
    Dernier message: 02/09/2010, 16h21
  2. Passage d'un diagramme de classe a une base de donnée relationnelle
    Par Midoov dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 07/06/2010, 11h47
  3. classe externe et base de données
    Par frodon sacquet dans le forum ActionScript 3
    Réponses: 6
    Dernier message: 19/10/2009, 14h24
  4. Nom des classes dans la base de données.
    Par chriscoolletoubibe dans le forum JPA
    Réponses: 3
    Dernier message: 14/09/2009, 10h09
  5. diagramme de classe pour un base de donnée
    Par gentelmand dans le forum Diagrammes de Classes
    Réponses: 5
    Dernier message: 23/05/2009, 00h30

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