netbeans,php und objekte!

Heyho

folgendes problem anhand von beispielcode erklärt.

PHP:
class foo {
  public function doSomething() {
     $var = new bar("fapfapfapfap");
     return $var;
  }
}

class bar {
  public function doSomethingElse() {
     echo "uuuuaaaaaahhhh .... *smoke* :D";
  }
}

wenn ich jetzt im netbeans die codecompletion nutzen möcht funktioniert das mit foo noch einwandfrei.

sprich

PHP:
$obj = new foo();
$obj->

schlägt mir die methoden des objekts vor. soweit so gut.

PHP:
$obj = new foo();
$muh = $obj->doSomething();
$muh->

schlägt mir jetzt aber nicht "doSomethingElse" vor und netbeans kann daher nix damit anfangen.

jetzt wäre meine frage, kann ich netbeans ggf. mit hilfe von dem phpdoc oder dergleichen verklickern, dass ich es hier _IMMER_ mit dem objekt bar zu tun habe und dementsprechend vorschläge für die completion bekomme?

ich hoffe mein problem is verständlich :)
 
php ist, auch in version 5, nicht typsicher ... ohne ablaufanalyse kann deine IDE nicht wissen welchen typ das ergebnis deiner funktion hat ... und der konkrete ablauf steht ggf. erst zur laufzeit fest ...

beispiel:
PHP:
function doSomething($x) { 
if($x>5)
$var = new bar("fapfapfapfap"); 
else
$var = new meh("Meh!");
return $var; 
}

wie ist der typ von dem was zurück gegeben wird?
 
Das geht tatsächlich mit phpdocs

/**
*@return bar
**/
public function...

@GrafZahl
Da gebe ich dir Recht trotzdem kann man mit PHP5 ordentlich programmieren d.h. Eine Funktion gibt nur einer bestimmte Klasse bzw. Interface zurück. Im validen Fall das eine Funktion mehrere unterschiedlichen Klassen zurück liefern kann muss man mit instanceof arbeiten dann erkennt auch Netbeans von welchen Typ die variable ist.
Das ist natürlich kein Vergleich mit C oder Java...

Sent from my HTC Desire using Tapatalk
 
Zuletzt bearbeitet:
Zurück
Oben