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.





