|
|||||||||||||||||||||
| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
![]() |
|
|
LinkBack | Themen-Optionen | Thema bewerten | Ansicht |
|
|||
|
Überraschend! Also ist der Overhead der Reflection gar nicht so groß und offensichtlich weit von einem "mehrere-Sekunden"-Bereich entfernt. Dass das nur Spaßklassen sind ist imho sekundär, für PHP sind die genau so ernst, haben Methoden und sind abgeleitet. Selbst wenn sie umfangreicher wären und es dadurch 8 Mal so lange dauert, wird man sicher trotzdem selten mehr als 1000 Instanzen haben
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? ![]() Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt? Super, danke! ![]() Dir wurde bereits geholfen? Dein Helfer freut sich über eine Bewertung. ![]() |
|
|||
|
Habs jetzt selbst mal getestet, und komme zu ähnlichen Ergebnissen (auch mit "echten" Klassen …*wobei hier ein 8000-facher durchlauf ein klitzekleinesbisschen länger läuft
) … da hat sich dann wohl was getan, seit dem ich das letzte mal mit der PHP-Reflection rumgespielt habe.Leider ist mein Blog grade down, da hatte ich das ganze mal in einem Sniffer verwurstet, der Klassen auf bestimmte Regeln prüft. Ich weiß noch, dass das unendlich langsam war. |
|
|||
|
Ich habe mal aus den vorherigen Codefetzen eine Reflection basierende mini DI Einrichtung gebaut.
Gefallen tut mir das so noch lange nicht.... PHP-Code:
Evtl später mal um die php5.3 Closures/Lambdas aufgemotzt.
__________________
Wir werden alle sterben |
|
|||
|
Zitat:
![]() Array ( [direct] => 0.0530550000 [reflection] => 0.1483920000 [difference] => 0.095337 )
__________________
Drelingdo Krabonse Simmannamando |
|
|||
|
Ich habe mal eine Frage zu dem Thema. Die Sache mit dem Autoload und der SPL wurde ja schon angesprochen. Spricht irgend etwas dagegen es über diesen Weg zu lösen?
|
|
|||
|
Der SPL-Autoload-Mechanismus ist die momentane Best Practise. Aber was genau willst du damit lösen? Das Laden von Klassen oder wie der TO irgendwelche Injections?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? ![]() Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt? Super, danke! ![]() Dir wurde bereits geholfen? Dein Helfer freut sich über eine Bewertung. ![]() |
|
|||
|
Also so wie ich das verstanden habe, initiiert der TO verschiedene Klassen, die natürlich verschiedene Parameter im Konstruktor haben können. Ich habe darüber letztes Jahr mal 'n Blogbeitrag geschrieben.
Danach kann ich doch alle Klassen, sofern sie in einer entsprechenden Verzeichnisstruktur aufbereitet sind, mit den entsprechenden Parametern initiieren und muss dies nicht umständlich über die vom TO beschriebene Klasse tun. Irgendwie habe ich gerade Angst, dass ich total am Thema vorbei denke. |
|
|||
|
Du verwechselst initiieren mit instanziieren, aber das nur nebenbei
![]() Inwiefern hat denn die Verzeichnisstruktur der Klassendateien etwas mit deren Konstruktorparametern zu tun? Und was hat das mit Autoloading zu tun. Autoloading ist für das Laden zuständig, nicht für automatische Instanziierung. Bitte aufklären.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? ![]() Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt? Super, danke! ![]() Dir wurde bereits geholfen? Dein Helfer freut sich über eine Bewertung. ![]() |
|
|||
|
Autoloading hat doch den enormen Vorteil, dass ich Klassen nicht mehr per require einbinden muss. Genau das macht ja der TO. Er bindet bei Bedarf die im Array festgehaltenen Klassen ein und instanziert sie mit den im Array festgehaltenen Parametern.
Mit Autoloading kann ich eine Klasse egal von welchem Ort automatisch laden und erspare mir das übergeben der Parameter über eine gesonderte Klasse oder Funktion. Was hat die Ordnerstruktur damit zu tun? Ich habe mir angewöhnt meine Klassen in umfangreichen Projekten nach der Verzeichnisstruktur zu benennen. Ähnlich wie es das Zend Framework auch tut. Beispiel: Die Klasse DataUserEditor liegt nach dem Klassennamen dann im Verzeichnis Lib/Data/User und hat den Dateinamen Editor.class.php. Meine Autoload Funktion bröselt den Klassennamen dann entsprechend auf. Deswegen auch eine durchdachte Verzeichnisstruktur, wie sie in diesem Thread schon mal kurz angesprochen wurde. Direkt mit den Konstruktorparametern hat dies natürlich nichts zu tun. |
|
|||
|
Zitat:
Deine Erklärung (soweit ich sie verstanden habe) klingt nach dem ganz normalen Verfahren, wie man SPL Autoloading vor PHP 5.3 üblicherweise benutzt hat. Ich verstehe also nicht ganz, worauf du hinaus willst. Der TO hatte da ja noch ganz andere Sachen im Sinn. Nur zum Verständnis: das meinst du nicht, ja?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? ![]() Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt? Super, danke! ![]() Dir wurde bereits geholfen? Dein Helfer freut sich über eine Bewertung. ![]() |
![]() |
| Lesezeichen |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Dynamische Listbox ? | lastyle | PHP Developer Forum | 12 | 20-08-2006 16:52 |
| Dynamische XML Dokumente | tblhh | XML | 0 | 31-07-2006 14:06 |
| dynamische ip | yard | Fragen zu Installation & Konfiguration (LAMP, WAMP & Co.) | 7 | 29-04-2004 18:06 |
| dynamische pop-up | mister_x1 | HTML, JavaScript, AJAX und CSS | 5 | 13-11-2003 11:56 |
| Dynamische Liste | plr1 | PHP Developer Forum | 3 | 22-10-2003 13:53 |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
|
|