Resistance is Futile

NetBeans, PHPUnit y Ubuntu

NetBeans 6.5Siguen y siguen apareciendo nuevas caracteristicas para la version de PHP de NetBeans, esta vez es el turno para las pruebas unitarias, que al igual que la version para Java permiten crear pruebas para cada clase creando una clase completa que sirve para automatizar las pruebas las cuales se pueden ejecutar en cualquier momento utilizando el mismo editor.

Requisitos :

  • Tener instalado el paquete phpunit
    Abrir una terminal, instalar el paquete
    sudo apt-get install phpunit

Pasos :

  • Abrir una terminal
  • Descarga una version de desarrollo de NetBeans para PHP,
    por ejemplo la version del 20 de Enero de 2008
    wget http://bits.netbeans.org/download/trunk/nightly/latest/zip/netbeans-trunk-nightly-200901201401-php.zip
  • Descomprimir
    unzip netbeans-trunk-nightly-200901201401-php.zip
  • Ejecutar, se puede utilizar la opcion --userdir para especificar un directorio diferente de opciones
    ./netbeans/bin/netbeans.sh --userdir /home/<usuario>/netbeans/php
  • Crear un proyecto llamado calculadora_php
    File -> New Project -> PHP -> PHP Application
    Pulsar el boton Next
    Colocar el nombre  : calculadora_php
  • Abrir las opciones del NetBeans
    Menu Tools -> Options
    Seleccionar la pestaña PHP
  • Adicionar la ruta del PHPUnit
    PHP Unit Script : /usr/bin/phpunit
  • Adicionar un directorio al Global Include Path
    Pulsar el boto Add Folder
    Seleccionar el directorio /usr/share/php
  • Crear la clase Calculadora.php con el siguiente codigo :
    <?php
    class Calculadora {
        function sumar($a, $b) {
            return $a+$b;
    }
    ?>
  • En la lista de archivos de proyecto, click derecho sobre Calculadora.php
    Tools -> Create PHP Unit tests
  • Crear el directorio donde se almacenaran las pruebas
    Abir una terminal y ejecutar
    mkdir /home/<usuario>/public_html/test_php/tests
  • Esto abre una caja de dialogo donde se nos pide la ruta completa de donde se almacenaran las prueba.
    Digitar : /home/<usuario>/public_html/test_php/tests
  • NetBeans genera una clase con los metodos necesarios para ser una prueba unitaria
    Abrir la clase y buscar el metodo testSumar, cambiar para que luzca asi :

        public function testAdd() {
            $a = 5;
            $b = 3;
            $r = $this->object->add($a, $b);
            $this->assertEquals($r,8);
        }
  • Ahora puede seleccionar la clase CalculadoraTest.php, click derecho y Run
  • Esto ejecuta la prueba unitaria

Actualmente esta version esta en desarrollo y los nombres para ejecutar las pruebas pueden cambiar por ejemplo a Run Test. A diferencia de la version Java en este momento al finalizar la prueba el resultado es visible en la consola, pero no de manera grafica.

Algo que me parecio raro, es que al momento de crear las pruebas me solicitara la ruta completa para almacenar las clases, pero leyendo mas acerca de esta nueva caracteristica, todavia esta en discusion donde se deben crear las pruebas unitarias, pues no deben ser parte del producto final, pero deben poderse publicar para realizar pruebas sobre los servidores en los cuales se esta trabajando y no solamente locales, de tal modo que por el momento se deberia escojer un directorio por fuera del proyecto, aunque en el ejemplo utilizamos un directorio tests dentro del proyecto para facilitar las cosas.

Desde los dias de Thunder he utilizado SimpleTest (otro framework para realizar pruebas para PHP), pero ahora que NetBeans tiene el soporte listo para PHPUnit creo que estare pensando en migrar muchas de las pruebas unitarias a esta herramienta, a no ser que de aqui a eso saquen una version para SimpleTest. Queda pendiente hacerle el seguimiento a esta nueva caracteristica y mirar que framework se esta pensando para las pruebas web.

Enlaces :


MMetaverse : Subiendo Texturas a OpenSimulator

Hace algunos dias hice pruebas subiendo texturas a OpenSimulator a traves de la libreria LibOpenMetaverse lo cual funciono muy bien pero no me servia del todo por que la idea es subir las texturas desde una aplicacion web desarrollada en PHP por lo cual no podia utilizar Mono, asi que me di a la tarea de desarrollar una libreria que permitiera hacer esto desde PHP, asi como tambien muchas cosas adicionales.

Para subir una textura al inventario de un usuario de OpenSimulator debemos hacer los siguiente :

  • Abrir una terminal
  • Ir al directorio de paginas de nuestro usuario :
    cd ~/public_html
  • Crear directorio para almacenar la libreria :
    mkdir mmetaverse
  • Cambiar al directorio
    cd mmetaverse
  • Bajar la libreria MMetaverse para PHP :
    http://code.google.com/p/mmetaverse/downloads/list
  • Por ejemplo, bajar la version 0.1 :
    wget http://mmetaverse.googlecode.com/files/mmetaverse_php_0.1.zip
  • Conseguir la imagen a subir, debe estar en formato JPEG2000 y debe tener un tamaño de 512x512 por ejemplo
  • Crear un archivo uploadTexture.php y escribir el siguiente codigo, recuerde cambiar los datos del usuario y de la imagen :
    <?php
     // Load metaverse client
    require_once 'src/mjs/mmetaverse/client/MMetaverseClient.class.php';
    
    // Try to open client connection
    try {
        // Grid User Info
        $firstname = 'Juan';
        $lastname = 'Perez';
        $password = '1234';
        $server = '192.168.1.2';
        $port = 9000;
    
        // Create a client a do login
        $client = new MMetaverseClient($server,$port);
        $client->login($firstname, $lastname, $password);
    
        // Sleep while the opensim opens the udp server and
        // Register the client
        //sleep(20);
    
        // Try to upload image using capabilities
        try {
            // Image Information
            $name = 'texture02';
            $description = 'Texture upload by MMetaverse';
            $content = file_get_contents('image01.jp2');
    
            // Get inventory and upload image
            $inventory = $client->getInventory();
            $response = $inventory->uploadTexture($name, $description, $content);
    
            // Print the new texture uuid
            echo 'New Asset :' . $response->getHyphenated();
        } catch (Exception $e) {
            // Show the error information
            echo 'Error : ' . $e->getMessage();
        }
    
        // Close the connection with the simulator
        $client->logout();
    } catch (Exception $e) {
        // Show the error information
        echo 'Error : ' . $e->getMessage();
    }
    ?>
  • Abrir nuestro navegador favorito y cargar la url :

    http://<IpServidor>/~<usuario>/mmetaverse/uploadTexture.php

  • Esto debe subir la imagen y mostrarnos el identificador de esta en nuestro inventario, por ejemplo :
    New Asset :bf52067c-febb-85d4-9255-66346d05d346

Enlaces :


MMetaverse Release 0.1

Sale por fin a la luz uno de los tantos subproductos de estas vacaciones, la libreria MMetaverse que permite administrar mundos virtuales creados con OpenSimulator, como tambien conectarse al simulador utilizando el lenguage PHP.

Esta primera version es una version de "prueba de concepto" para identificar si realmente es viable construir una libreria que permite el acceso a las infinitas caracteristicas de los servidores de OpenSimulator, como tambien evaluar la posibilidad de crear un cliente que permita conectarse a la grid como cualquier visor y que permita interactuar entre la una pagina web el simulador directamente. Todo este trabajo nace de juntar varias ideas que me han estado rondado por la cabeza y que tienen que ver con mi proyecto educativo en Second Life llamado Pulsar Project, el cual he tenido un poquito abandonado pero que pronto retomare por cuestiones de la maestria.

Para mantener un control sobre el proyecto en este momento esta siendo alojado en el servidor de proyectos de Google, donde esta habilitado el wiki, las descargas, manejo de versiones, acceso a los fuentes y grupo de discusion.

Version 0.1 (2009,01,14)
------------------------
- Version de Prueba
- Ejemplo cargar textura implementado
- Ejemplo adicionar usuario y listar usuarios implementado
- Soporte basico para paquetes UDP
- Capabilities implementadas y soporte para NewFileAgentInventory
- Implementacion basica de cliente, login y logout
- Implementacion basica de comunicacion via LLSD
- Manejo basico de texturas, obtener la imagen
- Manejo basico de regiones, listar, informacion
- Manejo basico de usuarios, listar, adicionar, informacion
- Soporte inicial para servidor OpenSimulator con base de datos sqlite

Nota : Esta primera version fue escrita utilizando NetBeans 6.5 para PHP, por eso es que ultimamente ando hablando tanto de este IDE.

Enlaces :


NetBeans y PHP Prado

NetBeans 6.5

Luego de buscar que framework y que editor utilizan en mis desarrollos en PHP, me decidi finalmente por Yii y NetBeans aunque despues de trabajar un poquito con Yii, me parece que Prado sigue siendo una buena opcion para el desarrollo, apoyado tambienen que hoy encontre en el blog de desarrollo de NetBeans para PHP con un modulo con soporte para Prado, creo que lo estare probando esta semana y seguramente sera el utilizado para continuar con el desarrollo de la plataforma en la Universidad.Prado

Ojala y este modulo lo sigan desarrollando, por que la mayoria de usuario de NetBeans para PHP piden soporte para Symfony.

Pasos :

  • Abrir una terminal
  • Descargar la version de desarrollo de NetBeans para PHP :
    http://bits.netbeans.org/download/trunk/nightly/latest/
  • Descargamos la version en Zip :
    wget http://bits.netbeans.org/download/trunk/nightly/latest/zip/netbeans-trunk-nightly-200901121401-php.zip
  • Download the Prado Module :
    wget http://blogs.sun.com/netbeansphp/resource/other/org-netbeans-modules-php-prado-001.nbm
  • Descomrpimir el NetBeans
    unzip netbeans-trunk-nightly-200901121401-php.zip
  • Ejecutar el NetBeans utilizando la opcion --userdir :
    ./netbeans/bin/netbeans.sh --userdir ~/netbeans/php
  • Instalar el modulo a traves del manejador de Plugins :
    Menu Tools -> Plugins -> Downloaded -> Add Plugin
  • Seleccionar el archivo nbm
  • Seguir las indicaciones
  • Reiniciar el NetBeans
  • Crear un proyecto PHP
  • Incluir el Framework de Prado en los Include Path

Enlaces :


Ejecutando Varias Versiones de NetBeans

NetBeans 6.5Si se quiere instalar y utilizar diferentes versiones de NetBeans en la misma maquina o se quieren probar las ultimas versiones de desarrollo, es recomendable separar las configuraciones para cada una de las versiones e incluso crear algunas temporales para realizar pruebas.

Pasos :

  • Abrir una consola
  • Crear un directorio para almacenar las diferentes configuraciones de los NetBeans a utilizar, por ejemplo :
    mkdir ~/netbeans
  • Crear un directorio para almacenar la configuracion de una de las versiones a utilizar, por ejemplo :
    mkdir ~/netbeans/php
  • Descargar e instalar la version de NetBeans a utilizar
  • Ir al directorio raiz del recien instalado NetBeans
    cd <netbeans>
  • Ir al directorio de binarios
    cd bin
  • Ejecutara el comando de NetBeans con el userdir
    ./netbeans.sh --userdir ~/netbeans/php

Para tener otras versiones realice los pasos anteriores con cada una asi tendremos una configuracion separada por cada version de NetBeans, como tambien podremos cargar la version mas adecuada para nuestro proyecto sin recargar el sistema.  Incluso podemos ejecutar varios NetBeans al mismo tiempo.

Enlaces :


Page 3 of 41234
Powered by WordPress | Designed by Elegant Themes