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 éclairé
    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
    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 : 372
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 éprouvé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 169
    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 éclairé
    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
    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