CodeSniffer en Arch Linux

Al trabajar en diversos proyectos con tecnologia PHP, es recomendable tener ciertos parametros de codigo, estandares que hacen el codigo mas legible.

Para esto ayuda el paquete CodeSniffer de PEAR, que evalua el codigo de acuerdo a estandares (PEAR o Zend). Vamos a mostrar algunos detalles de como instalarlo en una distro Arch Linux.

Lo primero es instalar PEAR:

pacman -S php-pear

Luego de ello actualizamos los canales de PEAR (como root):

pear update-channels
pear list-upgrades
pear upgrade PEAR

Y por ultimo instalamos el CodeSniffer:

pear install PHP_CodeSniffer

Luego lo ejecutamos por la terminal:

$ phpcs

En mi caso no fui tan afortunado 😦 y me retorno un error al momento de ejecutarlo:

PHP Warning:  is_file(): open_basedir restriction in effect. File(/usr/bin/../CodeSniffer/CLI.php) is not within the allowed path(s): (/srv/http/:/home/:/tmp/:/usr/share/pear/) in /usr/bin/phpcs on line 28

Para solucionarlo, modifique el archivo /usr/bin/phpcs en la seccion:

if (is_file(dirname(__FILE__).'/../CodeSniffer/CLI.php') === true) {
    include_once dirname(__FILE__).'/../CodeSniffer/CLI.php';
} else {
    include_once 'PHP/CodeSniffer/CLI.php';
}

Como vemos, trata de abrir el archivo cuya ruta relativa es: /usr/bin/../CodeSniffer/Cli.php la cual no existe, pues la carpeta Codesniffer se encuentra en /usr/share/pear/PHP/. Entonces modificamos esas lineas de codigo, quedando:

if (is_file(dirname(__FILE__).'/../share/pear/PHP/CodeSniffer/CLI.php') === true) {
    include_once dirname(__FILE__).'/../share/pear/PHP/CodeSniffer/CLI.php';
} else {
    include_once 'PHP/CodeSniffer/CLI.php';
}

Luego de esto, ya podemos ejecutar nuestro CodeSniffer sin problemas :D.

Anuncios

2 comentarios en “CodeSniffer en Arch Linux

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s