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".