Objet dans une classe

ViPHP
ViPHP | 4039 Messages

26 nov. 2007, 15:26

C'est clair, quand je donne des cours, je force l'utilisation du bloc-note.

Et s'ils sont gentils, ils passent à un truc qui supporte la coloration syntaxique.

Me bloc-note, c'est essentiel.
Image
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 18 Messages

26 nov. 2007, 16:34

NoNos: renseigne toi sur le Singleton. c'est un design pattern qui te permet de n'avoir qu'une seule instance d'une classe donnée, et de te la "trimballer" à droite et à gauche.
typiquement ce que tu veux faire avec mysql!
tu pourras accéder à ton object "oMysql" dans toutes tes classes, sans passer de paramètres. c'est beaucoup plus propre et le concept n'est pas du tout difficile à appréhender.

essaye, par exemple, ici : http://www.journaldunet.com/developpeur ... ry-1.shtml

bon courage!

ViPHP
ViPHP | 4674 Messages

26 nov. 2007, 17:57

PHP va refuser le typage MySQL. Il ne prend que les objets, et Array. D'ailleurs, je me suis au Java récemment (pour la fac), et bin c'est vraiment sympa. On a du mal à revenir sur PHP après (niveau typage je parle).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
AB
ViPHP | 5818 Messages

26 nov. 2007, 19:52

PHP va refuser le typage MySQL. Il ne prend que les objets, et Array. D'ailleurs, je me suis au Java récemment (pour la fac), et bin c'est vraiment sympa. On a du mal à revenir sur PHP après (niveau typage je parle).
Ben j'ai un peu de mal à comprendre ce que tu veux dire, d'autant plus que précédemment tu préconisais une méthode statique pour la connexion ?

ViPHP
ViPHP | 4674 Messages

26 nov. 2007, 20:08

J'ai oublié de citer Sékiltoyai. Il proposait la solution (élégante certes) suivante : public function maMethode ( MySQL mysql ). Ceci ne sera pas compris par PHP. Il ne supporte que les types objets (Object et tous ces enfants), et le type Array également.

Je ne contredis pas le fait d'utiliser des méthodes ou attributs de classes statiques. Ça reste àmha une bonne idée. Mais on ne sait toujours pas ce qu'il (l'auteur du billet) veut faire hehe.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 1511 Messages

26 nov. 2007, 23:05

Evidemment vu quephp est un langage non typé et que zend studio n'est pas sensé connaître les données de ta variable. Mais as tu vraiment besoin de l'autocomplétion ? Personnellement j'utilise un éditeur de texte tout con, et je ne développe pas moins bien pour autant… Bref, ces gadgets simplifient la vie, mais seulement si on n'en est pas dépendant.

Bref, pour ton problème, tu peux essayer d'ajouter ceci dans le constructeur :
function __construct(MySQL $sql)
mais je ne garantis rien et je t'inciterais à garder cette méthode même si tu n'as pas l'autocomplétion…
Heu, pour certains fonction, j'utilise le typage, pour restreindre les données d'entrées et n'avoir que des données traitées par une class donnée et ca fonctionne très bien pourtant... Donc la, j'ai du mal a saisir la remarque de HyWaN a ce sujet... :?
Ptet que ca ne fonctionne qu'en php5 aussi ^^

ViPHP
ViPHP | 4674 Messages

26 nov. 2007, 23:16

J'ai dis n'importe quoi haha :P. J'ai pas compris que t'avais une classe MySQL ^^. J'ai pensé que vous parliez d'un type déjà défini dans PHP 5.

Bon on oublie tous mes messages :P. On mettra tout ça sur le compte de la fatigue, hein, ça reste entre nous ^^.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
AB
ViPHP | 5818 Messages

28 nov. 2007, 19:43

En reprenant le lien donné par d-sam on pourrait faire une classe de connexion qui pourrait ressembler à
class connect_bdd {

    private static $instance;	
	
    private function __construct() {
	
		require('Connections/fichier_bddconnect.php');//contenant le nom de la bdd et la connexion		
		mysql_select_db($nom_bdd, $connexion);
	}
	
	
    public static function getInstance() {
	
        if(self::$instance == NULL) {self::$instance = new connect_bdd();}

         return self::$instance;
     }
	 
}

//appelée une ou plusieurs fois de n'importe où, en faisant 
connect_bdd::getInstance();


Eléphanteau du PHP | 18 Messages

29 nov. 2007, 13:40

à quelques variations près, c'est ce que j'utilise, et j'en suis satisfait.
dans mes classes qui nécessitent des accès BDD, je fais un simple

Code : Tout sélectionner

$this->db = connect_bdd::getInstance();
dans le __construct de la classe, et ça roule ;)