Ir al contenido principal

Autocompletado en Netbeans sin necesidad de instanciar clases

En php generalmente dividimos los código en varios archivos, y las variables que declares en un archivo ya no está disponible en otro archivo, por ende no funciona el autocompletado en netbeans.

Hare un pequeño ejemplo sencillo para poder ilustrar el problema y dar una posible solución (no creo que sea la única).

Tendremos 3 archivos: principal.php, archivo que se ejecuta; Operador.php, archivo en el cual se define una clase; y parte.php; una pequeña porción de código.

Archivo Operador.php
<?php

class Operador {

    private $_a;
    private $_b;

    public function __construct($a = 0, $b = 0) {
        $this->_a = $a;
        $this->_b = $b;
    }

    public function sumar() {
        return $this->_a + $this->_b;
    }
    
    public function restar() {
        return $this->_a - $this->_b;
    }
}

Archivo principal.php
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>ejemplo</title>
    </head>
    <body>
        <?php
        require_once './Operador.php';
        $operador = new Operador(10, 8);
        ?>
        <h2>Operacion suma</h2>
        <p>La suma es: <?php echo $operador->sumar() ?> </p>
        <?php require_once './otro.php' ?>
    </body>
</html>

Archivo otro.php
<h2>Operacion resta</h2>
<p>La resta es: 
    <?php
    echo $operador //aqui no hay autocompletado 
    ?>
</p>

En este archivo no hay autocompletado,  a pesar que ya tenemos la variable operador declara en el archivo principal.php.

Una posible solución es  documentar la variable operador, y así tendremos autocompletado de todos los métodos disponibles de la clase, se documenta de la siguiente manera:
<?php 
/* @var $variable Operador */

?>

Entonces el archivo otro.php quedaría así:
<h2>Operacion resta</h2>
<p>La resta es: 
    <?php
    /* @var $operador Operador */
    echo $operador->//ya tenemos autocompletado
    ?>
</p>

Y taran funciona, ya tenemos autocompletado en NetBeans, este es solo un ejemplo para ilustrar, imagínese que tengan 100 archivos php y cada archivo mas o menos con 20 métodos.

Esto funciona para los diferentes frameworks php, por ejemplo al insertar una librería en CodeIgniter, haciendo esto ya tendrás autocompletado.

Comentarios

Entradas más populares de este blog

Acceder a wamp/xampp desde otro pc

En ocasiones queremos que nuestros proyectos web que están en un servidor web local ( http://localhost/ ), sean accedidos desde otras computadoras de la red a través de la IP del servidor web local. Pero esto no es posible debido a que algunas soluciones que integran apacahe - php - mysql - otros en un solo paquete (Wampserver, xampp) solo habilitan el acceso de manera local. La solución está en editar (cambiar directivas) el archivo de configuración del apache, en este caso trabajare con Wamp. Cambiando directivas en Directory Abrir el archivo de configuración de apache, en mi caso: C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf Y buscar: <Directory />  AllowOverride none  Require all denied </Directory> Y modificar a esto: <Directory /> AllowOverride none #Require all denied Order allow,deny Allow from all </Directory> Cambiando directivas en el documentRoot En el mismo archivo buscar: <Directory "c:/wamp/...

Instalar varias versiones de Mozilla Firefox en Windows

A veces tenemos la necesidad de probar nuestras aplicaciones web en diferentes navegadores y en sus diferentes versiones, en el caso de Firefox no se puede tener varias versiones instaladas al mismo tiempo, por más que se hagas instalaciones personalizadas eligiendo otra carpeta de destino. Una posible solución es instalar las versiones portables, funciona pero no he quedado conforme, la otra solución es la que detallo continuación. Crearemos un perfil de ejecución para cada versión de Firefox, y haremos instalaciones personalizadas para cada versión. Creando un nuevo perfil Presionamos tecla Windows + R (ventana ejecutar) y escribir: firefox –profilemanager Se abrirá la siguiente ventana, en tu caso solo aparecerá “default” a mi aparece varios porque tengo todas esas ya instaladas. Creamos un nuevo perfil (crear perfil) Poner el nombre de perfil, yo le pongo ff3 porque será firefox 3.0. Ahora ya tengo el perfil ff3 agregado, luego salir ...

Modelo de datos para una encuesta

Modelo de datos para encuesta, la aplicación lo hice con codeigniter, espero subirlo pronto.