Configurar Zend Studio para proyectos PHP en UTF-8

Hace relativamente poco que he empezado a usar Zend Studio como IDE para PHP y uno de los primeros pequeños problemas con los que me he encontrado ha sido con la codificación de caracteres de los proyectos.

Aunque cambiar el charset por defecto de Zend Studio (CP1252) no presenta mayor dificultad que tocar una opción de menú, la cosa se complica si quieres poder trabajar con proyectos que utilizan diferente codificación y, además, que la documentación se genere correctamente para todos ellos.

Después de hacer algunas pruebas creo que he encontrado la configuración idónea para poder trabajar correctamente con todos los proyectos, estableciendo UTF-8 como codificación por defecto.

1. Configurar codificación de los proyectos

Lo primero que debemos hacer es cambiar la codificación de los proyectos a UTF-8, y para ello tenemos dos opciones:

a) Configuración a nivel de entorno de trabajo (recomendado)

A través de esta opción, indicamos a Zend Studio que la codificación por defecto de nuestro entorno de trabajo es UTF-8, por lo que todos los nuevos proyectos que se creen tendrán este charset. El cambio no afectará a los proyectos que ya tengamos creados, que mantendrán su codificación original. Es la opción recomendada.

Para realizar el cambio accedemos a Window > Preferences > General > Workspace y en el apartado Text File Encoding seleccionamos UTF-8 en el desplegable Other.

b) Configuración a nivel de proyecto

Si, por contra, queremos mantener la codificación por defecto de Zend Studio (CP1252), tenemos la opción de cambiar la codificación a nivel proyecto, de forma individual.

Para ello accedemos a las propiedades del proyecto (Botón derecho sobre el proyecto > Properties) y veremos que en el apartado Text file encoding tenemos dos opciones: mantener la configuración por defecto del entorno de trabajo, o especificar una nueva para ese proyecto (en la que seleccionaríamos UTF-8 del desplegable Other).

Sea como sea, una cuestión MUY IMPORTANTE es NO TOCAR la codificación a través de la opción Content Types de las preferencias de la aplicación. Al tocar esta opción, estamos indicando que todos los archivos con determinada extensión cambien su codificación, con lo provocaremos que los archivos creados con una codificación diferente a la que hemos establecido se visualicen de manera errónea.

2. Configurar  documentos HTML y CSS

Aunque hayamos cambiado la codificación a UTF-8 a nivel de entorno de trabajo o de proyecto, los nuevos archivos HTML creados desde Zend Studio estarán en ISO-8859-1.

Para establecer que los nuevos documentos HTML y CSS estén codificados en UTF-8, deberemos acceder a Window > Preferences > Web > HTML Files o CSS Files y, seleccionaremos ISO 10646/Unicode (UTF-8) en el selector Encoding del apartado Creating files.

Ahora, al crear un nuevo documento HTML o CSS , veremos que aparece lo siguiente en sus respectivas cabeceras:

HTML:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

CSS:

@CHARSET "UTF-8";

3. Configurar PHPDocumentor

Aún habiendo realizado correctamente los pasos anteriores, veremos que si generamos la documentación de un proyecto UTF-8 usando PHPDoc, ésta se visualizará de forma errónea (acentos, tildes…).

Esto es debido a que las plantillas de PHPDocumentor están configuradas para codificación iso-8859-1, tal y como se puede ver en los archivos .tpl de, por ejemplo, la plantilla HTML:frames:default

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
<?xml version="1.0"  encoding="iso-8859-1"?>

Para solucionar el problema, deberíamos crear una nueva plantilla -partiendo de una existente- substituyendo la cadena iso-8859-1 por UTF-8. El problema es que esta nueva plantilla generada no será mostrada por el asistente en el momento de generar la documentación, a causa de un error documentado de Zend Studio.

Aún así, podemos hacer lo siguiente:

1. Accedemos a la ruta donde se encuentran las plantillas HTML:frames de PHPDocumentor:

C:\Program Files\Zend\Zend Studio - 7.0.1\plugins\com.zend.php.phpdocumentor_7.0.0.v20090826-1200\Resources\phpdocumentor\phpDocumentor\Converters\HTML\frames\templates

2. Hacemos una copia del directorio default y le llamamos default-iso8859 (por ejemplo).

3. Con la ayuda de un editor de texto (por ejemplo: Notepad++), substituimos la cadena iso-8859-1 por UTF-8 en todos los archivos .tpl del directorio default.

Ahora, por defecto, la documentación de nuestros proyectos UTF-8 se generará correctamente y siempre dispondremos de la plantilla original en caso de necesitar documentar un proyecto antiguo.

4 Comentarios

Cómo redirigir el puerto LPT1 a una impresora de red o USB en Windows XP

En ocasiones -sobre todo si nos movemos en un entorno empresarial-, podemos encontrarnos con programas antiguos (ya sean basados en DOS o en Windows) que sólo permitan imprimir a través del puerto LPT1 del equipo en el que están instalados.

Para solucionar el problema, y poder imprimir desde estas aplicaciones en cualquier otra impresora instalada en el equipo (ya sea una impresora de red o conectada por USB), debemos mapear (o redirigir) el puerto LPT1.

Para ello, deberemos realizar los siguientes pasos:

1) Compartir la impresora a la que queremos que se redirijan las peticiones

Podemos utilizar cualquier impresora instalada en el equipo. Para compartirla accedemos a Inicio > Impresoras y faxes > Seleccionamos “Compartir” del menú contextual de la impresora y le asignamos un nombre de recurso compartido.


2) Redirigir el puerto LPT1 a la impresora

Si estamos en un equipo con permisos de administrador, bastará con abrir una consola de comandos (Inicio > Ejecutar > cmd.exe) y ejecutar lo siguiente:

NET USE LPT1: \\%COMPUTERNAME%\NOMBRE_IMPRESORA /persistent:yes

De esta manera estamos redirigiendo las peticiones del puerto LPT1 a la impresora que hemos compartido en el punto anterior. Además, con el parámetro /persistent:yes, estamos indicando que queremos que el mapeo siga disponible una vez reiniciemos el equipo.

Si intentamos ejecutar el comando anterior con un usuario no administrador (por ejemplo, un usuario de dominio), veremos que nos devuelve un error.

Esto es debido a que el puerto LPT1 se asigna por defecto al puerto paralelo local, y sólo los administradores pueden modificar esta asignación.

Para solucionar este problema, deberemos deshabilitar la asignación del puerto LPT1 al puerto paralelo durante el inicio del equipo, tal y como se explica en el artículo E313644 de Microsoft Support. Deberemos realizar lo siguiente:

1. Descargar la utilidad DevCon de Microsoft y copiar el ejecutable en un directorio del PATH del sistema (por ejemplo, en C:\Windows).

2. Ejecutar el siguiente comando en el equipo:

devcon disable *PNP0401

Podemos ejecutar el comando de dos formas: Accediendo al equipo con una cuenta de Administrador o, si es un equipo de dominio, configurando una directiva de grupo para ejecutarlo como secuencia de comandos de inicio de equipo (En el administrador de directivas de grupo:  Configuración de equipo > Configuración de Windows > Archivos de comandos (Inicio/Apagado) > Inicio).

Después de realizar estos pasos, un usuario no administrador podrá redirigir el puerto LPT1 desde consola de comandos usando NET USE, así como también funcionará si la instrucción se ejecuta como comando de inicio de sesión en una directiva de grupo a nivel de usuario.

1 Comentario

Compartir carpetas entre Windows y Linux en VirtualBox

A raíz del tutorial Instalar Ubuntu bajo Windows Vista con VirtualBox publicado hace varios meses, algunos de vosotros habéis preguntado cómo acceder desde vuestro Ubuntu virtualizado a carpetas existentes en Windows.

A través de este mini-tutorial, vamos a ver cómo compartir carpetas entre ambos sistemas con las herramientas que nos ofrece VirtualBox.

Antes de empezar, es necesario que tengáis instaladas las Guest Additions, tal y como se explica en el punto 4 del tutorial.

1. Crear la carpeta compartida en VirtualBox

Supongamos que queremos compartir al carpeta “D:\compartido” de Windows entre ambos sistemas.

Lo primero que debemos hacer es crear esa carpeta compartida en VirtualBox. Para ello accedemos a “Dispositivos > Carpetas compartidas” de la máquina virtual y hacemos clic en “Agregar carpeta compartida” (el icono con el símbolo +).

Seleccionamos la ruta de la carpeta de Windows a compartir y le damos un nombre (que usaremos posteriormente). En este punto podemos asignar permisos de sólo lectura o establecer que esta carpeta compartida sea “permanente” o sólo válida para esta sesión.

Compartir carpetas en VirtualBox (1)Compartir carpetas en VirtualBox (2)

2.Montar la carpeta en Linux

Para tener acceso a la carpeta que acabamos de compartir, debemos montarla en el sistema invitado (en nuestro caso, Ubuntu).

Si consultamos la ayuda de VirtualBox, veremos que para ello debemos usar el siguiente comando: mount -t vboxsf [-o OPTIONS] sharename mountpoint.

sharename hace referencia al nombre que hemos asignado a la carpeta compartida en el punto anterior
mountpoint hace referencia a la ruta donde queremos que se encuentre la carpeta compartida en el sistema invitado

Así que, para ello, abrimos un terminal (que por defecto nos posiciona en /home/usuario) y ejecutamos:

mkdir compartido (para crear la carpeta)
sudo mount -t vboxsf compartido /home/usuario/compartido/
(esta acción nos solicitará la contraseña de administrador que pusimos durante la instalación)

Y… ¡listo! Ya podemos compartir archivos entre ambos sistemas.

Compartir carpetas en VirtualBox (3)

9 Comentarios
Página 1 de 212