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 :

[Tableaux] singleton et factory


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut [Tableaux] singleton et factory
    salut
    j'ai un petit probleme avec ma fabrique de singleton
    voici l'erreur
    Declaration of FileSysteme::Singleton() should be compatible with that of SingletonFactory::Singleton() in E:\parser\FileSysteme.class.php
    class SingletonFactory
    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
    abstract class SingletonFactory
    {
    	private static $_instance = array();
     
    	protected function __construct(){}
     
    	protected static function Singleton($instace_id = null){
    		if(!isset(self::$_instance[$instance_id])){
    			if(!class_exists($instance_id)){
    				return false;
    			}
    			self::$instance[$instance_id] = new $instance_id();
    		}
    		return self::$_instance[$instance_id];
    	}
    }
    et FileSystem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static final function Singleton(){
    		return parent::Singleton(__CLASS__);
    	}
    je vois pas l'erreur
    merci

  2. #2
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    si FileSystemCode est un descendant de SingletonFactory alors la fonction Singleton(){ est un overload...

    et tu overload protected static function Singleton par public static final function ...

    je doute que ce soit permis.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    salut
    j'ai tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static function Singleton(){
          return parent::Singleton(__CLASS__);
       }
    c'est la meme chose
    je ne vois pas purquoi cela n'est pas permis (car je n'ai pas defini ma methode etant abstraite)

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Tu as bien dit à FileSystem qu'elle hérite de SingletonFactory ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    oui
    (je me demande si Filsysteme n'est pas un nom de calss deja utiliser)

  6. #6
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    Redéfinir une fonction qui est en protected pour la mettre en public, c'est pas possible il me semble.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    ba normalement c'est permis
    extrait de la doc
    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
    <?php
    class MyClass
    {
       protected function myFunc() {
           echo "MyClass::myFunc()\n";
      }
    }
     
    class OtherClass extends MyClass
    {
       // Dépassement de la définition parent
       public function myFunc() {
     
         // Mais appel de la fonction parent
         parent::myFunc();
         echo "OtherClass::myFunc()\n";
      }
    }
     
    $class = new OtherClass();
    $class->myFunc();
    ?>
    je suis sous php5.1.2
    il y pas eu de changement avec les class abstraite par rapport a la 5.1.1

    bon apres correction de mes erreurs (d'hortographe)
    cela devrais fonctionner

    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
    abstract class SingletonFactory
    {
       private static $_instance = array();
     
       protected function __construct(){}
     
       protected static function Singleton($instance_id = null){
          if(!isset(self::$_instance[$instance_id])){
             if(!class_exists($instance_id)){
                return false;
             }
             self::$_instance[$instance_id] = new $instance_id();
          }
          return self::$_instance[$instance_id];
       }
    }
    voila et sinon ce code est issue dehttp://php.openstates.org/home.html

    merci a tout le monde

    bon apres correction j'ai toujours le meme probleme

    bon ba
    en fait avce
    public static final function Singleton($instance_id = null){
    return parent::Singleton(__CLASS__);
    }
    ca fonction
    est ce que quelqu'un pourrai tester sur 5.1.1 ou inferieur

    merci

Discussions similaires

  1. "Singleton" et factory
    Par BakaOnigiri dans le forum Langage
    Réponses: 5
    Dernier message: 12/07/2011, 12h43
  2. Probleme max connexion / Singleton Session Factory
    Par Drazharian dans le forum Hibernate
    Réponses: 1
    Dernier message: 09/03/2011, 22h37
  3. template, singleton et object factory
    Par [Hugo] dans le forum Langage
    Réponses: 13
    Dernier message: 04/05/2009, 13h53
  4. [loki] abstract factory et singleton
    Par NiamorH dans le forum C++
    Réponses: 1
    Dernier message: 11/09/2007, 17h10
  5. [MySQL] Masques : Singleton dans Factory ?
    Par Invité dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/07/2006, 17h18

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