|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Glen RhodesÉtudiant Inscription : novembre 2009 Messages : 134 ![]() |
Bonjour,
Étant en train de démarrer la phase de développement d'un projet d'application WEB qui utilise PHP côté serveur, je viens de tomber sur un point que je n'arrive pas à éclaircir et google ne m'a pas renseigné. Voila ma question : Est-il possible de restreindre la visibilité d'une classe en PHP? Je m'explique, je souhaiterais faire comme en java et définir une classe comme protected afin qu'elle ne soit pas abstraite mais qu'elle ne puisse être instanciée que par ses classes filles? Je ne sais pas si cette notion existe en php ou s'il existe une manière de contourner son absence. Merci d'avance de vos réponses. |
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : septembre 2010 Messages : 7 250 ![]() |
non y'a pas ça en PHP, tu peux mettre ton __construct en protected, sinon tu peux faire du pseudo private, avec l'autoloader en mettant ta classe privé dans le même fichier
exemple : fichier Test.php Code :
__________________
http://blog.stealth35.com/ |
||
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Glen RhodesÉtudiant Inscription : novembre 2009 Messages : 134 ![]() |
Bonjour et merci,
Je me suis tellement pris la tête à chercher exactement ce que je voulais que je n'ai même pas pensé à changer la visibilité du constructeur. Merci beaucoup pour la réactivité. Sinon, pour la deuxième solution, je ne suis pas très à l'aise avec les mécanismes d'autoload. Je m'en suis servi bien sûr mais sans jamais savoir si ma manière de faire était la bonne. J'écrivais une fonction autoload dans un fichier config global qui était inclus dans tous les fichiers nécessaires. De le cas de ton exemple avec ma manière de faire, si un futur développeur qui a inclus mon fichier de config global tente de faire un : Il y aura alors une erreur (ou un warning suivant l'utilisation de require ou include). C'est bien le comportement que je souhaites, si j'ai bien compris? Toutefois je ne peux pas utiliser cette manière de procéder car j'ai besoin d'utiliser l’héritage, plusieurs classes différentes pourront hériter de Privé. Encore une fois merci!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com