02-05-2009, 07:43 PM
Bon déjà le lien ou j'ai apris comment marche tout çà en php:
http://fr.php.net/manual/fr/language.oop.php
http://fr.php.net/manual/fr/language.oop5.php
Pour les questions:
1)
Donc soit elle créé, soit elle récupère l'objet déjà créé.
Pourquoi vouloir éviter ces doublons?
Et bien chaque objet stocke les groupes de variables dans la propriété $text_loaded, afin de ne pas recharger le contenu des fichier langue inutilement. Si on utilise des objet différent le contenue de $text_loaded est différent, ce qui est normal si il ne s'agit pas de la même langue, mais ne l'est pas si c'est la même langue et donc les même textes!
Bref çà garantit qu'un seul et unique objet sera créé et utilisé par langue.
2)
En php4 on devait mettre un & pour précisé que l'objet était passé par référence. Sinon il aurait été copié.
En php5 les objet sont automatiquement passé par référence donc plus besoin de &
3)
je te renvoie à la doc qui comporte des exemples
http://fr.php.net/manual/fr/language.oop...ng.members
Mais en gros __get se lance quand on appelle une propriété non accessible
$this->ma_propriété_inexistante;
La propriété vaudra alors la valeur de retour de la méthode __get()
Ici c'est utilisé pour appeler des texte sans argument (trou), qui ne nécessite donc pas de paramètre $text->hello par exemple
4)
Là on récupère le tableaux des arguments, si j'appelle $text->get('hello_you','Zamentur'); alors $liste_args vaut array('hello_you','Zamentur')http://fr.php.net/manual/fr/language.oop.php
http://fr.php.net/manual/fr/language.oop5.php
Pour les questions:
1)
Citation :Pourquoi utiliser cette méthode pour créer un objet plutôt que de l'instancier directement en mettant ce contenu dans le constructeur ?En fait cette méthode sert à garantir qu'il n'y aura qu'un objet par langue de créé. Ainsi si l'objet a déjà été créé on peut le récupérer via cette même méthode.
Donc soit elle créé, soit elle récupère l'objet déjà créé.
Pourquoi vouloir éviter ces doublons?
Et bien chaque objet stocke les groupes de variables dans la propriété $text_loaded, afin de ne pas recharger le contenu des fichier langue inutilement. Si on utilise des objet différent le contenue de $text_loaded est différent, ce qui est normal si il ne s'agit pas de la même langue, mais ne l'est pas si c'est la même langue et donc les même textes!
Bref çà garantit qu'un seul et unique objet sera créé et utilisé par langue.
2)
Citation :- à quoi sert le "&" qui référence la méthode ?Alors comme je l'ai précisé la classe que j'ai filé est à la base faite pour php4.
En php4 on devait mettre un & pour précisé que l'objet était passé par référence. Sinon il aurait été copié.
En php5 les objet sont automatiquement passé par référence donc plus besoin de &
3)
Citation :à quoi servent ces lignes ?La méthode __get() est une méthode magique en php5
je te renvoie à la doc qui comporte des exemples
http://fr.php.net/manual/fr/language.oop...ng.members
Mais en gros __get se lance quand on appelle une propriété non accessible
$this->ma_propriété_inexistante;
La propriété vaudra alors la valeur de retour de la méthode __get()
Ici c'est utilisé pour appeler des texte sans argument (trou), qui ne nécessite donc pas de paramètre $text->hello par exemple
4)
Citation :- je ne comprends pas bien le mécanisme ici non plusCette fonction permet d'obtenir un texte complet, identifié par le paramètre $name qui est obligatoire.
Code PHP :
<?php
$liste_args = func_get_args();
Code PHP :
<?php
$sentence = $this->load_text(array_shift($liste_args));