Tach!
Dein Beispiel enthält Syntaxfehler und die beiden Methoden
__set()
und__get()
enthalten keinen Code. Deswegen ist "geht nicht" erklärlich.war auch nur als beispiel gedacht, ich dachte das wäre klar 😉.
Wenn die beiden Methoden Inhalt haben, dann ist mir nicht klar, was du mit "geht nicht" meinst. "Geht" und "geht nicht" sind zu allgemein, um Probleme nachvollziehbar zu beschreiben.
Der Zugriff bei "geht leider" ist auch normal, denn vorhandene und zugängliche (public) Eigenschaften triggern nicht den Aufruf von __set()/__get().
Schon klar. Ich hab ja in der Vergangenheit die Instance Properties mit private deklariert und hab mit der magic method
__get()
in der Instance drauf zugegriffen. Geht wie am Schnürchen, aber Du oder ein anderer hast mich drauf hingewiesen, dass das mit private bezüglich intellisense nicht geht. Schade 😕. Und deswegen suche ich im der neuste version nach alternativen.
Die Code-Analyse kann selbstverständlich auch nicht-öffentliche Mitglieder lesen und der Autovervollständigung zur Verfügung stellen. Dann aber nur, wenn man sich im Code innerhalb der Klasse befindet. Eigenschaften, die nur über die Magic Methods __set()/__get() erreichbar sind, sind nicht statisch sondern erst zur Laufzeit verfügbar, denn dein Code kann beliebig auf angefragte Namen reagieren. Kennst du die verfügbaren Namen doch schon zur Entwicklungszeit, dann kannst du diese mit PHPDoc-Syntax bekanntgeben.
Intellisense ist der Name der Programmiererunterstützung in Microsoft-Produkten, kein allgemeiner Begriff für Autovervollständigung.
dedlfix.