Mostrando entradas con la etiqueta entorno de desarrollo. Mostrar todas las entradas
Mostrando entradas con la etiqueta entorno de desarrollo. Mostrar todas las entradas

martes, 7 de abril de 2015

Configuración de Aptana Studio para integrar PHPUnit

Estoy probando varios IDE para trabajar con el proyecto Academia. Hasta ahora estaba usando TextMate, que más que un IDE es un editor de texto potente con muchas funciones útiles, pero que quizá resulta un poco insuficiente para trabajar en un proyecto de este tipo. En cualquier caso, ahora mismo estoy probando Aptana Studio 2 que tiene también sus limitaciones, pero que se acerca más a la idea de lo que es un IDE. La parte negativa es que es un tipo de herramienta que no tiene nada que ver con la filosofía del Mac OS y es un auténtico cacao de controles y opciones.

Preparando Aptana para PHPUnit

Esta nota se centra en la integración de PHPUnit en Aptana.

Activar External Tools

El primer paso es activar las External Tools. Para ello hay que:

  1. Ir al menú Window ➔ Customize Perspective.
  2. Seleccionar la pestaña Command Groups Availability.
  3. Activar External Tools.

Ahora tendremos la opción en el menú Run (cerca del final). También en la barra de herramientas nos aparecerá el icono del menú desplegable, junto al icono de Run.

Crear una configuración para ejecutar PHPUnit

El siguiente paso es crear una configuración para ejecutar el test.

  1. Ir al menú Run ➔ External Tools ➔ External Tools Configurations…
  2. Creamos una nueva dentro de Program, con los siguientes datos:


  • Name: PHPUnit (por ejemplo)
  • Location: el path completo para PHPUnit, en mi caso: /usr/local/bin/phpunit
  • Working Directory: el path para la base del proyecto, en mi caso /Library/WebServer/Documents/Academia
  • Arguments: --bootstrap bootstrap.php --colors --verbose tests

La línea anterior llama a un archivo bootstrap.php que lo único que hace es incluir el autoloader de composer.

Asegurarnos de que PHP es accesible a esta herramienta

Ahora un paso importante, tenemos que asegurarnos de que PHP se ejecute correctamente. Mi instalación contempla una instalación de PHP en una ubicación personalizada y el PHP original está deshabilitado, por lo que no va a funcionar.

  1. Nos vamos la pestaña Enviroment.
  2. Clic en el botón Select…
  3. Escogemos la variable PATH, que se añadirá a la lista de variables de ambiente
  4. Editamos la variable para añadir la ruta al ejecutable de PHP que queremos usar.

Probando todo

Una vez realizados los pasos anteriores, al pulsar en el botón de External Tools y seleccionar la configuración de PHPUnit el entorno de tests debería funcionar y mostrar, por tanto, la cantidad de tests y aserciones probadas y su resultado.
Por desgracia, la consola de Aptana Studio no nos mostrará el resultado en colores.

viernes, 27 de marzo de 2015

Instalación de Composer

Composer es el gestor de paquetes para PHP del momento y, de hecho, es una muy buena herramienta para mantener controladas las dependencias de un un proyecto PHP. No tienes más que definir un archivo composer.json con las dependencias del proyecto y ya tienes un instalador limpio y bastante sofisticado.
Yo lo he instalado de forma global en el equipo:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Me resulta más cómodo que hacerlo localmente por proyecto.
Por el momento, este es el contenido del composer/json
{
    "name": "cakephpilia/academia",
    "description": "Educational platform",
    "homepage": "http://miralba.org",
    "type": "project",
    "license": "MIT",
    "require": {
        "php": ">=5.3"
    },
    "require-dev": {
    },

    "suggest": {
        "phpunit/phpunit": "Allows automated tests to be run without system-wide install."
    },
    "autoload": {
        "psr-4": {
            "Academia\\": "."
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}
De momento, lo más interesante es la configuración del autoloader ya que todavía no hay dependencias que cargar.
Composer incluye varias clases con las que configura un autoloader de los paquetes instalados y que se basa en el uso de espacios de nombres que coincidan con la organización del sistema de archivos (PSR-4). Para usarlo en el proyecto, básicamente tienes que indicar una clave "autoload" e indicar la relación entre la raíz del espacio de nombres y el directorio en el que se encuentra.
En mi caso, la raíz del espacio de nombres es "Academia". La doble barra invertida \\ es necesaria porque debes terminar la cadena con el separador de espacio de nombres "\" el cual, por ser un carácter especial, debe ir "escapado", precisamente con la barra invertida.
Finalmente, para usar el autoloader en el proyecto, he creado un archivo bootstrap.php provisional:


 # Uses composer autoload

 require_once __DIR__.'/vendor/autoload.php';
Este archivo se lo indico a phpunit para que puedan cargarse las clases y así no las importo explícitamente en los tests.
phpunit --bootstrap bootstrap.php --colors --verbose tests

Instalando PHP 5.5 en Snow Leopard

Mi máquina de trabajo es un iMac (iMac5,1) late 2006 corriendo con Snow Leopard. Viene preinstalado con PHP 5.3.10, pero me interesaba tener una versión más reciente para aprovechar algunas de las mejoras del lenguaje relacionadas con OOP.
Para instalarlo he ido por la vía fácil, que es utilizar los paquetes de PHP 5.3 to 5.6 for OS X 10.6 to 10.10 as binary package, que vienen ya configurados con lo que podría necesitar.

Instalación

Para ello, no hay más que teclear esto en terminal. Mi máquina no puede con la versión 5.6 que es la estable a la hora de escribir esto.

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

Esta instalación no sobrescribe la original, así que para evitar interferencias y diferentes versiones en el servidor web y en la consola, los siguientes pasos van a ser "inutilizar" la versión anterior y configurar apache para que use la más reciente. El PHP preinstalado está en /usr/bin, el nuevo, en /usr/local/php5/bin, así que voy a cambiar el nombre del "viejo" PHP para que no pueda utilizarse

cd /usr/bin
sudo mv php php_old
El siguiente paso es hacer que la nueva versión de PHP esté en $PATH, así que lo añadimos para la sesión actual:
export PATH="/usr/local/php5/bin/:$PATH"
Esta línea también la añado en el archivo .profile para las futuras sesiones:
cd ~
pico .profile
...
export PATH="/usr/local/php5/bin/:$PATH"
...
Nos queda un último apartado, que es decirle a Apache (también viene preinstalado en el sistema) que utilice el binario adecuado de PHP. El caso es que la instalación de que acabamos de realizar se ocupa de eso, añadiendo archivos de configuración extra aparte de nuestro /etc/apache2/httpd.conf. En este caso, lo que tenemos que hacer es comentar la siguiente línea y reiniciar Apache (cosa que puedes hacer desactivando y activando Compartir Web en el panel de preferencias del sistema Compartir),
#LoadModule php5_module        libexec/apache2/libphp5.so
Si, justamente lo que hacemos es deshabilitar la carga de PHP por defecto que hace Apache, para dejarla en manos de un archivo de configuración añadido que le indica la nueva ubicación de la biblioteca. Lo puedes ver abriendo /etc/apache2/other.
Y con esto, tenemos sincronizadas las versiones web y cli de PHP. Puedes comprobarlo en la consola con:
php -v
Una última anotación es que me he dado cuenta de que puede ser interesante incluir en el proyecto los archivos de configuración de Apache y el php.ini para tenerlos a mano como referencia o para comprobar y cambiar ajustes que en algún momento nos interesen.