Convention lecture seule / écriture / privée
Posté : 12 oct. 2010, 10:48
Comme tout le monde, j'ai des propriétés que je souhaite rendre inaccessible, d'autres en lecture seule, d'autres en écriture et lecture. (système getter setter)
Il y a t-il des conventions d'écriture ?
de type :
private $_mavar; // Ce sera inaccessible
private $mavar2; // Ce sera en lecture seule
public $mavar3; // Ce sera en lecture/ecriture
avec
__get ($mavar) {
if (substr($mavar,0,1) == "_") throw new Exception ("Private var");
return $this->$mavar;
}
Ou tout mettre en private avec $__var pour inaccessible, $_var pour lecture seule et $var lecture et écriture, avec un getteur (__get) et setteur (__set) ?
Ca m'éviterait de gérer une liste d'exception ... car actuellement j'ai un objet BattonGraph qui possède une variable Property(array) en private, dont on peut définir chacune des propriétés avec la méthode setProperty(); C'était aussi un moyen de regrouper tout pour l'utilisateur. Mais là ... je me dis que ce serait plus simple et plus propre de changer les propriétés directement de cette façon $mavar->property
Actuellement dans setProperty je teste que le typage des deux versions de var (l'ancienne et la nouvelle) sont pareils, pour ainsi faire un typage plus fort.
C'est à voir donc ...
Il y a t-il des conventions d'écriture ?
de type :
private $_mavar; // Ce sera inaccessible
private $mavar2; // Ce sera en lecture seule
public $mavar3; // Ce sera en lecture/ecriture
avec
__get ($mavar) {
if (substr($mavar,0,1) == "_") throw new Exception ("Private var");
return $this->$mavar;
}
Ou tout mettre en private avec $__var pour inaccessible, $_var pour lecture seule et $var lecture et écriture, avec un getteur (__get) et setteur (__set) ?
Ca m'éviterait de gérer une liste d'exception ... car actuellement j'ai un objet BattonGraph qui possède une variable Property(array) en private, dont on peut définir chacune des propriétés avec la méthode setProperty(); C'était aussi un moyen de regrouper tout pour l'utilisateur. Mais là ... je me dis que ce serait plus simple et plus propre de changer les propriétés directement de cette façon $mavar->property
Actuellement dans setProperty je teste que le typage des deux versions de var (l'ancienne et la nouvelle) sont pareils, pour ainsi faire un typage plus fort.
C'est à voir donc ...