PHP: Die Reflection-API - großartige Ergänzung zu PHP mit wenig Nutzen [geschlossen]

8

Reflection API ist eine großartige Sache da draußen, um das OOP-Zeug zu manipulieren, und es sieht so aus, als ob die meisten Entwickler sich dessen gar nicht bewusst sind oder es nie benutzt haben.

Reflection-API-Ansprüche:

  

PHP 5 kommt mit einer vollständigen Reflexion   API, die die Fähigkeit hinzufügt   Reverse-Engineering-Klassen, Schnittstellen,   Funktionen, Methoden und Erweiterungen.   Zusätzlich die Reflexions-API   bietet Möglichkeiten zum Abrufen von Dokumentkommentaren   für Funktionen, Klassen und Methoden.

Frage:

  • Warum hat es fast keine Dokumentation für die meisten seiner Methoden / Eigenschaften? Sie sehen diese Nachricht dort in der Dokumentation:
  

Diese Funktion ist derzeit nicht verfügbar   dokumentiert; nur seine Argumentliste ist   verfügbar.

Wo finde ich die Dokumentation überhaupt?

  • Ist es zukunftstauglich, mit anderen Worten, kann ich es in meinem MVC-Framework verwenden?
  • Warum wird es weniger häufig verwendet, stimmt irgendetwas nicht damit?
Sarfraz 04.03.2010, 07:17
quelle

1 Antwort

15

Reflection ist definitiv hier, um zu bleiben. Du kannst es verwenden, aber bedenke, dass es für einfache UseCases langsam und übertrieben ist. Die Verwendung einer der Funktionen im Funktionspaket Klassen / Objekte ist oft die schnellere Alternative.

Ein UseCase, in dem Reflection nützlich ist, ist das Analysieren von Annotationen im DocBlock einer Klasse. Zum Beispiel verwendet PHPUnit die Anmerkungen @test, um dem PHPUnit TestRunner mitzuteilen, dass er eine Methode als Test betrachten sollte. Die @covers-Annotation hilft beim Sammeln von Code Coverage-Daten. Das FLOW3-Framework verwendet Anmerkungen für sein AOP-Framework .

Leider, einige der neueren Ergänzungen zu PHP & gt; 5.3, sind noch nicht so viel dokumentiert. Schauen Sie sich einfach die SPL an . Gleiche Sache. Das bedeutet nicht, dass du es nicht benutzen kannst. Die Reflection-API ist sehr aussagekräftig und leicht aus den Methodennamen zu ermitteln. Und Google hat oft Blog-Posts über die Verwendung bestimmter Erweiterungen. Überprüfen Sie für die Reflection-API:

und für SPL

Etwas cooles, das ich gerade erst entdeckt habe. Ab Version 5.1.2 können Sie die Reflection-API über die Befehlszeile aufrufen :

%Vor%     
Gordon 04.03.2010, 07:43
quelle

Tags und Links