Después de batallar un poco con la función de autocompletar de NetBeans y de pruebas con XP, Win7 y diferentes versiones del IDE, al fin encontré la solución.
Primero explico el problema:
firstclass.php
Código PHP:
Ver original<?php
class firstClass {
private static $_instance = false;
private function __construct() {}
private function __clone() {}
public static function getInstance() {
if(self::$_instance === false) {
self::$_instance = new self();
}
return self::$_instance;
}
public function newFunction($var1, $var2 = false, $var3 = false) {
echo $var1;
}
}
Luego en index.php
Código PHP:
Ver original<?php
include 'include/first.class.php';
$fc = firstClass::getInstance();
$fc-> // Aquí no funciona autocompletar
Resulta que NetBeans se vale de la documentación (PhpDoc) para "saber" qué tipo de variable/objeto estamos manejando y, las opciones son:
1- La más fácil, pero tal vez no la óptima: Documentar la variable, especificando que es instancia de la clase:
Código PHP:
Ver original<?php
/* @var $fc firstClass */
$fc = firstClass::getInstance();
$fc-> // Ya funciona autocompletar
2- La segunda opción: Documentar la función; para mí es mejor, porque si haces las cosas como se debe, sólo lo harás una vez y no cada que necesites obtener instancia de la clase.
Código PHP:
Ver original/**
* Instanciar con patrón singleton
*
* @return firstClass
*/
public static function getInstance() {
if(self::$_instance === false) {
self::$_instance = new self();
}
return self::$_instance;
}
// Y en index.php:
$fc = firstClass::getInstance();
$fc-> // Ya funciona autocompletar
Supongo que quienes tienen la buena costumbre de documentar adecuadamente sus scripts no habrán notado este "problema".