Ich versuche, ein automatisiertes Getter und Setter für PHP-Objekte zu implementieren.
Mein Ziel ist es, für jede Eigenschaft automatisch die Methoden getProperty()
und setProperty(value)
zu haben. Wenn die Methode nicht für eine Eigenschaft implementiert ist, wird das Skript einfach den Wert setzen oder erhalten.
Ein Beispiel, um mich klar zu machen:
%Vor%oder
%Vor%Irgendwelche Ideen / Hinweise, wie das geht?
Wenn Sie die Funktionen getXy
und setXy
für beliebige Eigenschaften simulieren möchten, verwenden Sie den magischen Wrapper __call
:
Dies wäre eine gute Gelegenheit, einmal etwas Nützliches zu tun, indem man eine Typmap oder irgendetwas hinzufügt. Sonst gehen Getter verloren und Setter könnten insgesamt ratsam sein.
Ich weiß, dass diese Frage alt sein könnte, aber ich denke, ich kann Ihnen oder den Leuten helfen, die in Zukunft auf diese Frage stoßen werden ... Es gibt ein Projekt / eine Bibliothek namens pLombok. Es entspricht dem Java-Lombok ( Ссылка ), in dem Entwickler eine Bibliothek entwickelt haben, die Code wie Getter und Setter im laufenden Betrieb erzeugt, um den Code zu entfernen . Die Grundidee meines Projekts besteht also darin, spezielle Kommentare wie:
zu verwenden /**
* @Setter
*/
/**
* @Getter
*/
und so weiter, um pLombok mitzuteilen, den Getter und Setter für jede Eigenschaft zu generieren und den generierten Code der bestimmten Klasse hinzuzufügen, bevor das Programm ausgeführt wird.
Der folgende Code:
%Vor%generiert:
%Vor%im laufenden Betrieb!
Es gibt noch viele andere Funktionen wie das Generieren eines Konstruktors ohne Felder, eines Konstruktors mit allen Argumenten oder einer einfachen toString-Methode usw.
Mit Composer können Sie pLombok einfach installieren:
%Vor%Danach können Sie es wie folgt verwenden:
Mach einfach:
%Vor%Sagen Sie pLombok jetzt, dass Sie auf den bestimmten Namespace achten und sich darum kümmern sollten. Erstellen Sie dafür eine neue Datei:
Die vollständige Dokumentation befindet sich auf GitHub: Ссылка
Ich hoffe, das hilft.