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] Assignation d'objet en php5


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
    Par défaut [POO] Assignation d'objet en php5
    salut

    j'ai un petit probleme pour assigner un objet, j'ai un bout de code qui fonctionne tres bien mais a un endroit ca plante completement
    c'est une methode qui me construit un objet, elle est utilisé partout

    dans l'extrait cic-dessous la methode trenvois bien un objet, mais php plante au moment de l'assigner

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $chose = ServiceLoader::singleton( 'DBService', 'fw', true );//plante
        	ServiceLoader::singleton( 'DBService', 'fw', true );//affiche un objet

    je ne sais pas sur quel peid danser

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut

    qu'entends-tu par "php plante" ? parce que ce code est bon, pas de doute là-dessus... s'il y a un probleme, il faudrait plutot chercher du coté de ta methode static...

    donc : quel est le message d'erreur affiché ?

  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
    Par défaut
    en fait php semble boucler, mais aucun message d'erreur, ce qui me parrait tres suspect, c'est que je vois bien l'objetr en faisant un dump, mais qu'il est impossible a assigner

    voici la methode statique
    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
    48
    49
    50
    51
    52
    53
    	static public function singleton($pluginName, $config, $fwmode = false, $useProfil = false, $useLanguage = false, $id = null) {
    		try{
     
    			if ($pluginName == '') {
    				throw new ApplicationControllerException("ServiceLoader > singleton() : parametres introuvables pour le plugin [ $pluginName ], mode [ $fwmode ] !", E_USER_ERROR);
    				return false;
    			}
     
    			$pluginName = trim( $pluginName );
    			$signature = array ($pluginName, $config, $fwmode);
    			$signature[] = ($useProfil) ? ApplicationController :: getProfil() : '';
    			$signature[] = ($useLanguage) ? ApplicationController :: getLanguage() : '';
    			$signature[] = $id ;
    			$signature = serialize($signature);
     
    			if (!isset ( self :: $_instances[$signature]) ) {	
    				self::$keepInstance[] = $signature;
    				self::$_instances[$signature] = self::factory($pluginName, $config, $fwmode);
    				echo $pluginName.'--'.self::$_instances[$signature].'<br/>';
    			}
     
     
    			if( ! self::$_instances[$signature] instanceof $pluginName){
    				throw new ApplicationControllerException('erreur lors de la creation de l\'instance du plugin '.$pluginName, E_USER_FATAL);
    			}
    		}catch(ApplicationControllerException $epe){}
     
    		return self::$_instances[$signature];
    	}
     
    static protected function factory($pluginName, $config, $fwmode) {
     
    		if ($pluginName == '') {
    			throw new ApplicationControllerException("ServiceLoader > factory() : parametres introuvables pour le plugin [ $pluginName ] !", E_USER_ERROR);
    			return false;
    		}
    		$filePlugin = ServiceLoader :: searchPlugin($pluginName);
    		if ( !$filePlugin) {
    			throw new ApplicationControllerException("ServiceLoader > factory() : Plugin [ $pluginName ] introuvable !<br/>$filePlugin", E_USER_ERROR);
    		}
    		if (isset ($config) && ($config != '')) {
    			$tabconf = ServiceLoader :: searchConfigPlugin($pluginName, $filePlugin, $config, $fwmode);
    		} else {
    			$tabconf = array ();
    		}
    		if ( isset ($tabconf)) {
    			return new $pluginName($tabconf);
    		} else {
    			throw new ApplicationControllerException("ServiceLoader > factory() : configuration [ $config ] et classe plugin [ $pluginName ] introuvables !", E_USER_ERROR);
    		}
     
    		return false;
    	}

  4. #4
    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
    Par défaut
    bon j'ai pas de reponse pour le probleme de l'assignation,
    mais mon probleme global vient du fait que je me plantai de base (une base de test pas a jour )

Discussions similaires

  1. [POO] passer un objet de page en page avec php5
    Par skyangel20 dans le forum Langage
    Réponses: 16
    Dernier message: 30/09/2007, 13h51
  2. [POO] Objet classe PHP5
    Par theskel dans le forum Langage
    Réponses: 1
    Dernier message: 08/08/2006, 10h49
  3. [POO] Instancier un objet avec le nom de la classe
    Par shinchun dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2006, 13h44
  4. [POO] Définition de constantes dans un objet en PHP5
    Par wdionysos dans le forum Langage
    Réponses: 9
    Dernier message: 29/03/2006, 19h51
  5. [POO] session_register et objet en PHP5
    Par ralkif dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2006, 20h21

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