Instanciation de classe, Votre avis sur une astuce éventuellement utile

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Instanciation de classe, Votre avis sur une astuce éventuellement utile

par sadeq » 21 févr. 2008, 21:10

Moi je préfère comme ça :
class MyExemple {

    var $param1;
    var $param2;
    var $param3;

    function MyExemple ($param1=null, $param2=null, $param3=null) { //params facultatifs
        $this->param1 = $param1;
        $this->param2 = $param2;
        $this->param3 = $param3;      
     
        //...
    }

}

//Différentes instanciations selon la disponibilité des paramètres
$MyExemple1 = new MyExemple (1, 2, 3); 
$MyExemple2 = new MyExemple (1, 2);
$MyExemple3 = new MyExemple (1); 
$MyExemple4 = new MyExemple (); 

Instanciation de classe, Votre avis sur une astuce éventuell

par dimalta5 » 21 févr. 2008, 01:25

Bonjour,

J'ai remarqué que pendant les phases de développement je perds pas mal de temps lorsque je dois changer les paramètres d'instanciation des classes quand c'est paramètres son assez nombreux et surtout quand certains sont optionnels à la fin.

J'avais donc commencé à faire les choses plutôt de la façon suivante:
$MyExemple=new HExemple();
$MyExemple->param1=1;
$MyExemple->param2=2;
$MyExemple->param3=3;
Mais je perdais la possibilité de retoucher les paramètres lors de l'instanciation.

J'ai donc cherché une technique qui me permette à la fois de conserver cette façon d'écrire et
et quand même, de travailler sur les paramètres lors de l'instanciation.

Je suis arrivé à ça:
class HConfig{}

class HLib{
	function ImportConfig(&$HConfig){
		foreach($HConfig as $k => $v){
			$this->$k=&$HConfig->$k;
		}
	}
}

class HExemple extends HLib{

	var $param1;
	var $param2;
	var $param3;

	function HExemple(&$HConfig){
		$this->ImportConfig($HConfig);

		//...
	}

}

$MyExemple=new HConfig;
$MyExemple->param1=1;
$MyExemple->param2=2;
$MyExemple->param3=3;
$MyExemple=new HExemple($MyExemple);
Moi je trouve ça assez clean et pratique par rapport à ce que je cherchais mais il y a peut être des inconvénients dont je me rends pas très bien compte.

J'aimerai savoir ce que vous en pensez, est ce que c'est absurde ou bizarre de faire ça comme ça à votre avis?

J.DiMalta