Αναστοχασμός PHP
Nette\Utils\Reflection είναι μια στατική κλάση με χρήσιμες λειτουργίες για την αντανάκλαση της PHP. Σκοπός της είναι να διορθώσει ελαττώματα σε εγγενείς κλάσεις και να ενοποιήσει τη συμπεριφορά σε διαφορετικές εκδόσεις της PHP.
Εγκατάσταση:
Όλα τα παραδείγματα προϋποθέτουν ότι έχει οριστεί το ακόλουθο ψευδώνυμο κλάσης:
areCommentsAvailable(): bool
Βρίσκει αν η αντανάκλαση έχει πρόσβαση στα σχόλια του PHPdoc. Τα σχόλια μπορεί να μην είναι διαθέσιμα λόγω της κρυφής μνήμης κώδικα, δείτε για παράδειγμα την οδηγία opcache.save-comments.
expandClassName(string $name, ReflectionClass $context): string
Επεκτείνει το $name
της κλάσης σε πλήρες όνομα στο πλαίσιο του
$context
, δηλαδή στο πλαίσιο του χώρου ονομάτων της και των
καθορισμένων ψευδώνυμα. Έτσι, επιστρέφει το πώς θα καταλάβαινε ο
αναλυτής της PHP το $name
αν ήταν γραμμένο στο σώμα του
$context
.
getMethodDeclaringMethod(ReflectionMethod $method): ReflectionMethod
Επιστρέφει μια αντανάκλαση μιας μεθόδου που περιέχει μια δήλωση του
$method
. Συνήθως, κάθε μέθοδος είναι η δική της δήλωση, αλλά το σώμα
της μεθόδου μπορεί επίσης να βρίσκεται στο γνώρισμα και με
διαφορετικό όνομα.
Επειδή η PHP δεν παρέχει αρκετές πληροφορίες για τον προσδιορισμό της πραγματικής δήλωσης, η Nette χρησιμοποιεί τις δικές της ευρετικές μεθόδους, οι οποίες θα πρέπει να είναι αξιόπιστες.
getPropertyDeclaringClass(ReflectionProperty $prop): ReflectionClass
Επιστρέφει μια αντανάκλαση μιας κλάσης ή ενός γνωρίσματος που
περιέχει μια δήλωση της ιδιότητας $prop
. Η ιδιότητα μπορεί επίσης
να δηλωθεί στο trait.
Επειδή η PHP δεν παρέχει αρκετές πληροφορίες για τον προσδιορισμό της πραγματικής δήλωσης, η Nette χρησιμοποιεί τις δικές της ευρετικές μεθόδους, οι οποίες δεν είναι αξιόπιστες.
isBuiltinType(string $type): bool
Καθορίζει αν το $type
είναι ενσωματωμένος τύπος της PHP.
Διαφορετικά, είναι το όνομα της κλάσης.
Χρησιμοποιήστε την Nette\Utils\Validator::isBuiltinType().
toString($reflection): string
Μετατρέπει μια αντανάκλαση σε μια συμβολοσειρά αναγνώσιμη από τον άνθρωπο.