Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 15h22   #1
Membre actif
 
Homme Glen Rhodes
Étudiant
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Glen Rhodes
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant
Secteur : Santé

Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 166
Points : 166
Par défaut Visibilité de classe en php5

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.
glen1789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 15h31   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 250
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 250
Points : 8 635
Points : 8 635
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 :
1
2
3
4
5
6
7
8
9
class Test
{
 
}
 
class Prive
{
 
}
La classe prive ne sera chargé que si Test est chargé
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 16h27   #3
Membre actif
 
Homme Glen Rhodes
Étudiant
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Glen Rhodes
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant
Secteur : Santé

Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 166
Points : 166
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!!
glen1789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h36.


 
 
 
 
Partenaires

Hébergement Web