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 :

[POO] Comportement du singleton


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [POO] Comportement du singleton
    Comportement du singleton

    Bonjour,
    je viens vers vous car je réalise un projet pour mon entreprise (malgré que je ne sois pas développeur de métier mais par passion).

    Je vous explique le principe de mes interrogations.

    voici mes class :
    • connexion : formulaire, traitement


    • classique : connexion à la base de donnée


    • cache : gère le cache


    • head : gère les meta, le head ainsi que l'ouverture et la fermeture du body.


    • preference : définie certaines constantes en fonction du profil d'utilisateur, sachant que si vous n'êtes pas authentifié, les constantes sont tout de même défini avec des valeurs car la personne non authentifié appartient au groupe visiteur.


    • session : vérifie à chaque pas si la personne est authentifiée, ainsi on obtient son groupe et login. Le groupe permettant de définir des morceaux de code. Une personne non authentifié est considéré dans un groupe visiteur. Je fonctionne avec une table mysql memory.


    • sql : requête de lecture et de mise à jour sql servant tout le long de la navigation.



    J'ai géré un singleton pour les class suivantes : connexion, classique, session et sql.

    Donc mes questions sont les suivantes :
    -d'après vous ("professionnel"), est-je bien segmenter mes portions de class ?

    -ai-je utiliser correctement les singletons au niveau du contexte ?

    -lorsqu'un utilisateur va se connecter, je créé une instance (singleton) avec une session. Est ce que si une autre personne se connecte, elle utilisera l'instance déjà créé par la première ? si oui ça pose un problème de sécurité ?

    -idem que plus haut, lorsque l'administrateur se connecte et fait une requête sql, une instance est créé. Est ce que le visiteur utilise la même instance du fait du singleton ?

    Voilà j'espère avoir été assez clair, n'hésitez pas à me poser des questions. Je vous avoue j'ai vraiment besoin d'une aide. Il est vrai que je ne suis pas obligé d'utiliser les singleton mais ce projet peut amener de nombreuses connexion et donc une optimisation me semble obligatoire. De plus concernant ma question au niveau de la segmentation du code, je vous pose la question car je me suis toujours demandé si c'était logique, si des professionnels feraient comme ça, etc.

    Merci beaucoup d'avance à toute personne faisant l'effort de prendre le temps sur cette réflexion et sur les différentes questions.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 81
    Points
    81
    Par défaut
    Bonsoir,

    En ce qui concerne l'utilisation du singleton, soyez rassuré, chacune des requêtes à un serveur PHP créé une nouvelle instance de PHP avec ses propres variables.

    Le bénéfice du singleton est d'être sûr d'avoir une et une seule instance de la classe pendant toute la vie de la requête, mais ça s'arrête là.

    Chaque requête au serveur PHP aura sa propre instance.

    Concernant le découpage, ce que je pourrais conseiller est de s'inspirer de la notion de "modèle".

    cf: http://fr.wikipedia.org/wiki/Mod%C3%...Le_mod.C3.A8le

    Un exemple SUPER light serait du style :

    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
     
    class Model {
        protected function connect() {
           // Ici la logique de connexion à la base de donnée
       }
    }
     
    class User extends Model {
     
        public function update() {
             $this->connect() // Connexion à la base de données
             // Traitement liée à la mise à jour de l'utilisateur
        }
     
    }

    Mais au final c'est aussi une affaire de goût mais l'avantage de cette solution est que tu ne manipules que des objets dans ton application et que tu ne vois plus la couche "base de données" avec des classes de connexion et autres.

    A toi de voir !

Discussions similaires

  1. [WD17] poo : comportement des membres globaux (static) d'une classe
    Par lmontout dans le forum WinDev
    Réponses: 5
    Dernier message: 26/12/2012, 12h21
  2. POO design pattern Singleton avec Windev
    Par Atsibat dans le forum Contribuez
    Réponses: 2
    Dernier message: 30/11/2012, 13h57
  3. [POO] Comportement statique d'un objet
    Par Benjamin Delespierre dans le forum Langage
    Réponses: 30
    Dernier message: 24/01/2011, 15h22
  4. [POO] Plugins et singletons
    Par Rewpparo dans le forum C++
    Réponses: 1
    Dernier message: 20/10/2008, 10h06
  5. [POO] Gestion des Singleton
    Par Bisûnûrs dans le forum Langage
    Réponses: 5
    Dernier message: 05/09/2008, 21h49

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