2008-12-23 13 views
8

Cuando define un objeto de una clase nueva utilizando como estoAutocompletar para objetos PHP con clases en PDT/Netbeans?

$blah = new Whatever(); 

consigo autocompletar por $ bla. ¿Pero cómo lo hago cuando tengo $ blah como parámetro de función? Sin autocompletar Estoy incompleto.

Editar: ¿Cómo lo hago si está en una inclusión y PDT o Netbeans no pueden resolverlo? ¿Hay alguna forma de declarar tipos para variables en PHP?

Respuesta

20

Método en primer comentario se llama "tipo dando a entender", pero debería usarla sabiamente. La mejor solución es phpDoc.

/** 
* Some description of function behaviour. 
* 
* @param Whatever $blah 
*/ 
public function myFunction($blah) 
{ 
    $blah-> 
    // Now $blah is Whatever object, autocompletion will work. 
} 

También puede usar un comentario de phpDoc en línea que hace exactamente lo mismo.

public function myFunction($blah) 
{ 
    /* @var $blah Whatever */ 
    $blah-> 
    // Now $blah is Whatever object, autocompletion will work. 
} 
+0

Alan, ¿estás diciendo que esto funciona en PDT porque en la clase de Netbeans Joe { public $ a; public $ b; } /* @var $ joe Joe */ $ joe-> no le da autocompletar. –

+0

sí, pero estoy usando PDT 1.3 –

+0

Acabo de probar esto en Netbeans 6.9.1 y funciona como un encanto. En mi opinión, más simple que la respuesta aceptada, parece que el soporte de php ha mejorado desde que se agregó el comentario de Yar. – henrik

7

tratan de pasar definición de la clase de parámetros en la función:

function myFunction(Whatever $blah) { 
} 
+0

eso funciona, pero ahora he ampliado la pregunta, ¡espero que no te importe! Gracias por tu excelente respuesta, eso ya ayuda. –

+0

Ah, y sobre "Editar": Realmente no sé cómo hacerlo de una manera elegante. Pero mi instalación de Eclipse + PDT también resuelve los parámetros de clase en casos similares. – maxnk

+0

De acuerdo, si nadie puede vencer eso, es muy posible, pero tal vez haya alguna manera de hacerlo, te daré la mejor respuesta. Prueba Netbeans, acabo de cambiar de PDT ... podrías cavarlo. –