IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[php 8.1] Récupération des propriétés et types d'une classe


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Janvier 2010
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 232
    Points : 112
    Points
    112
    Par défaut [php 8.1] Récupération des propriétés et types d'une classe
    Bonjour,

    Je voudrais récupérer les données membres d'une classe. J'utilise donc la classe ReflectionClass :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $r=new ReflectionClass(App\Classes\metier\Projet::class);
    $p=$r->getProperties();
    print_r($p);
    Je vois effectivement toutes mes propriétés mais toutes sont indiquées en string alors que dans ma classe elles sont typées !!!
    classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Projet {
     
        private int $id; 
        private string $nom; 
        private DateTime $dateDebut; 
        private int $dureePrevue; // en nombre de jours
    ce qui est renvoyé par la méthode :
    Nom : projet.png
Affichages : 226
Taille : 12,7 Ko

    Comment faire pour récupérer les bonnes informations : nom de la propriété et type déclaré ?

    Question subsidiaire : la méthode getAttributes me renvoie un tableau vide. Quelle différence subtile y a-t-il entre getAttributes et getProperties ?
    Merci beaucoup

  2. #2
    Nb
    Nb est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 423
    Points
    423
    Par défaut
    $prop->getType() (j imagine)

    Pour ta question 2, les attributs n ont rien à voir avec les propriétés:il s agit des attributs intégrés dans je ne sais plus quelle version de php, pour remplacer (entre autre) les informations qu on pouvait ajouter par des annotations (comme dans doctrine par exemple)

  3. #3
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Janvier 2010
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 232
    Points : 112
    Points
    112
    Par défaut
    Merci, c'est ce que je cherchais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $r=new ReflectionClass(App\Classes\metier\Projet::class);
    $a=$r->getAttributes();
    $p=$r->getProperties();
    foreach($p as $valeur){   
        echo $valeur->getType();
    }
    je verrai plus tard pour les attributes

Discussions similaires

  1. récupération des propriétés des matériels
    Par riccardo9 dans le forum NetBeans
    Réponses: 2
    Dernier message: 22/09/2009, 11h08
  2. Réponses: 6
    Dernier message: 10/04/2009, 16h52
  3. Réponses: 5
    Dernier message: 03/04/2008, 15h28
  4. Réponses: 1
    Dernier message: 19/12/2007, 12h55
  5. Récupération des propriétés d'un dossier
    Par micatt dans le forum Delphi
    Réponses: 13
    Dernier message: 25/03/2007, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo