[TYPO3-german] Typo3 "Remote" debuggen

Stephan Schuler Stephan.Schuler at netlogix.de
Wed Apr 20 11:49:34 CEST 2011


Hallo zusammen.


Die Diskussion gleitet ab. Beim ursprünglichen Thema "mit Netbeans TYPO3 remote debuggen" hätte ich mich mangels intensiver Erfahrung mit Netbeans nicht eingemischt. Wenn es aber um Autovervollständigungsmöglichkeiten von Editoren geht würde ich gerne ein wenig Inhalt beitragen.


PDT kann genau dann den Typ einer Variable kennen, wenn es auch Indizien dafür gibt.

Das wohl sicherste Zeichen ist natürlich der new-Operator. Dann klappt die Autovervollständigung natürlich hervorragend.

Wenn ein Parameter an eine Methode übergeben wird (und dieser Parameter ein Objekt ist), kann man mit PHP-Boardmitteln Type-Hints vergeben:
> protected function foo(myClassName $class) {}
Innerhalb der Methode ist klar (und durch PHP sichergestellt, andernfalls wird eine entsprechende Exception geworfen) dass $class vom Typ "myClassName" ist. Auch hier ist die Autovervollständigung möglich.

Wenn man allerdings entweder ein Attribut einer Klasse oder aber den Rückgabewert einer Methode weiterverarbeiten möchte, ist schon wieder Ende. Abhilfe schaffen hier nur Quellcodekommentare die PDT auswerten kann.
> /**
>  * @var myClassName
>  */
> protected $classProperty = NULL;
>
> /**
>  * @param myClassName $class
>  * @return myClassName
>  */
> protected function foo($class) {
>    $class->doSomething();
>    return $class;
> }
In der von mir skizzierten Situation ist durch die Kommentare ersichtlich, dass es sich beim Attribut $classProperty um ein Objekt des Typs myClassName handelt und dass die Methode foo() ebenfalls Objekte des Typs myClassName als Einputparameter und Rückgabewert besitzt.
Sofern euer Quellcode entsprechend kommentiert ist hat PDT auch Chancen das zu erkennen.

Was Probleme macht sind allgemeine Factoryaufrufe die den Rückgabetypen im Parameter haben -- t3lib_div::makeInstance zum Beispiel. Da hier grundsätzlich jede Klasse zurückgegeben werden kann, ist der Rückgabewert alles andere als eindeutig. Eine saubere Autovervollständigung ist hier ganz eindeutig nicht machbar. Hierfür lassen sich inline Variablentypen annotieren:
> /* @var myClassName $var */
> $var = t3lib_div::makeInstance('myClassName');
Ich bin mir hier allerdings nicht ganz sicher, ob der Kommentar über oder unter die Variablenzuordnung gehört. Es könnte auch sein dass er an das Ende der zuordnenden Zeile muss.


Auf die gleiche Weise funktioniert erkennt auch PHPStorm -- das bei mir PDT abgelöst hat, weil es um Längen schneller ist -- Variablentypen, diese Art der Zuordnung ist also keine PDT-Eigenheit. Ohne auch nur die geringste Ahnung zu haben wie Netbeans Variablentypen bestimmt würde ich vermutlich in diese Richtung forschen.


Mit freundlichen Grüßen,



Stephan Schuler
Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Website: media.netlogix.de


--
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Andernacher Straße 53 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: info at netlogix.de | Internet: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von dirk_studivz at web.de
Gesendet: Mittwoch, 20. April 2011 11:16
An: German TYPO3 Userlist
Betreff: Re: [TYPO3-german] Typo3 "Remote" debuggen

Hallo Claus,

nein, das geht meiner Meinung nach leider nicht. Aus dem Standgreif kann ich's gerade gar nicht sagen.

Ich müsste auch lügen, wenn ich jetzt behaupten würde dass ich noch 100%ig aus dem Stehgreif wüsste, in welchen Bereichen ich von der Autovervollständigung von PDT mehr als "enttäuscht" (umgangssprachlich könnte man das auch anders nennen ;)) war. Mit der Autovervollständigung wie sie bei Java-Projekten existiert ist aber auch die Netbeans-PHP-Version leider nicht vergleichbar bzw. hat da auch einige Defizite.

Am besten mal selbst ausprobieren - vielleicht hat sich PDT mittlerweile auch um einiges in der Hinsicht verbessert und ich lebe in meinen alten Erinnerungen. Ich werde mir PDT, wenn ich mal wieder etwas mehr Zeit habe, auch auf den Rechner schmeißen.

Viele Grüße,

Dirk


-----Ursprüngliche Nachricht-----
Von: "Claus Fassing" <claus at fassing.eu>
Gesendet: 20.04.2011 09:38:02
An: typo3-german at lists.typo3.org
Betreff: Re: [TYPO3-german] Typo3 "Remote" debuggen

>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>Hallo Dirk,
>
>Am 18.04.2011 14:50, schrieb dirk_studivz at web.de:
>> Speziell für PHP finde ich die Autovervollständigung um ein weites
>> besser als bei PDT
>
>kannst Du das näher beschreiben. Funktioniert die auch bei
>Objektinstanzen die über ne Factory erzeugt wurden ? Das geht bei PDT
>leider nicht und man ist ja von den Funktionen im Java Bereich schon
>sehr verwöhnt.
>Sebastian Kurfürst hatte da zwar mal ein Plugin erzeugt, aber auch das
>funktioniert leider nur für die alte Methode.
>
>Grüße Claus
>-----BEGIN PGP SIGNATURE-----
>Version: GnuPG v1.4.11 (MingW32)
>Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
>iQEcBAEBAgAGBQJNro1aAAoJELsIv+audObfXS8H/27uq0tlO0oxFwRSnJwxxs+s
>yPK70qBY7CK/3iFUcH1G91bwYOK1/tITWON5GqUAOVLUeHDE0wYOiDeSMfAC1V+I
>miULdEpzvUD2Q+7dfkL/Lf6RVdluNJPLuDL/Y6shkKd9D6k5uOfEbt5a1faK5tEi
>VcW2VHC3vWjYoeI4y2GbRhe/Lpg388O4QXjBQm8hxlvbOVQYTc5KSoqj9UPTMuUn
>vMPcpO7T3Lh7dC45bOAMcxxG+u6Ql02gQ+TMu8upefnr0IL2CHnQGevUjsYPdN79
>49wIQWUTsVcqkqvKrAs7QrtuWXX1sv7AFpRnoTcFawwg1wiBgnT3P2m6EF/cBP8=
>=NYxe
>-----END PGP SIGNATURE-----
>_______________________________________________
>TYPO3-german mailing list
>TYPO3-german at lists.typo3.org
>http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
___________________________________________________________
Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die Toolbar eingebaut! http://produkte.web.de/go/toolbar _______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list