viernes, 4 de mayo de 2012

NetBeans - Problemas con MySQL

En ocasiones me he encontrado con que al hacer un query desde NetBeans a una base de datos MySQL se produce un error "can not be represented as java.sql.Date".

Para solucionarlo hay que seguir los siguientes pasos:

Paso 1
Haciendo clic derecho sobre la conexión y utilizando la opción marcada en rojo en la imagen que sigue, la desconectamos. Entonces el icono aparecerá como partido.


Paso 2
Con clic derecho editamos las propiedades de la conexión tal y como se muestra en la figura que sigue mediante la opción resaltada en rojo:


Paso 3
Ahora editamos la "URL de la base de datos" (destacada en azul en la imagen de arriba) y añadimos 'zeroDateTimeBehavior=convertToNull' con lo que la URL del ejemplo quedaría de la forma:

jdbc:mysql://localhost:3306?zeroDateTimeBehavior=convertToNull

Con esto ya queda resuelto el problema.

martes, 3 de abril de 2012

NetBeans - Problemas con el FTP

Al configurar un proyecto para que NetBeans actualice directamente los ficheros vía FTP, me encontraba con que cada vez que NetBeans intentaba subir un fichero se producía un error como el siguiente.

NetBeans a problem with FTP operations

El mensaje indica que es una cuestión de FireWall, pero después de varios intentos infructuosos de resolverlo desde la ventana de gestión del FireWall de Windows, lo he solucionado ejecutando directamente esta instrucción desde la línea de comandos como administrador:

netsh advfirewall set global StatefulFtp disable

(Esta situación se ha producido trabajando sobre un Windows 7 Professional)

viernes, 2 de marzo de 2012

Habilitar el funcionamiento de .htaccess en local

Si nuestro Apache hace caso omiso de nuestros ficheros .htaccess, lo más probable es que haya que hacer un pequeño cambio en su fichero de configuración. Tendremos que ir a la carpeta "conf" del directorio en el que se encuentra instalado Apache y editar el fichero httpd.conf.

Simplemente hay que hacer una modificación como la que se muestra a continuación, grabar los cambios y reiniciar el servidor Apache.

<Directory "C:/Apache2.2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None (Cambiar por AllowOverride All)
    Order allow,deny
    Allow from all
</Directory>

Atención:
En otras partes del fichero httpd.conf nos podemos encontrar con bloques del tipo

<Directory "C:/LaRutaQueSea">
.
.
</Directory>

donde tendremos que hacer la misma operación sustituyendo AllowOverride None por AllowOverride All.

jueves, 5 de enero de 2012

SILEX - PHP micro-framework basado en Symfony2

Como Symfony es complejo y el proceso de aprendizaje no tan rápido como uno quisiera, SensioLabs nos ofrece SILEX como alternativa. No lo he probado todavía, pero es como un mini-Symfony y posiblemente para el desarrollo de muchas aplicaciones sea más que suficiente.

Habrá que aprovechar y ver también que es Pimple, una mini-herramienta utilizada por SILEX.

jueves, 15 de septiembre de 2011

Problemas con wsdl2phpgenerator

Al utilizar por primera vez wsdl2phpgenerator me he encontrado con que se producía el siguiente error:

Fatal error: Call to undefined function _() in generate.php on line 42

Pues bien, para resolverlo hay que instalar la extensión Gettext (+info) de php. El procedimiento es el habitual: en el php.ini hay que activar la línea extension=php_gettext.dll.

miércoles, 13 de abril de 2011

Espacios de nombres en PHP (PHP Namespaces)

Además del dominio de la programación orientada a objetos y del uso de los arrays asociativos, hay otro elemento que es importante dominar para entender el código de Symfony2. Se trata de los espacios de nombres.

Hay una fantástica explicación  del concepto de espacio de nombres en esta página. 

Y el manual "oficial" en español se encuentra en http://php.net/manual/es/language.namespaces.php.

Algunos pequeños detalles a destacar:
  • Para entender el uso de "use" hay que tener presente que, tal y como se indica en la documentación, los espacios de nombres de PHP soportan dos formas de usar alias o importar: apodar un NOMBRE DE CLASE, y apodar un NOMBRE DE ESPACIO DE NOMBRES. Observe que importar una función o una constante NO ESTÁ SOPORTADO. He destacado algunas partes del texto en mayúsculas pues he "tropezado" con esto a la hora de entender la lógica de utilización de "use".

miércoles, 6 de abril de 2011

Instalación de APC (Alternative PHP Cache)

APC acelera el funcionamiento de PHP y su uso está altamente recomendado por Symfony.

Hay un completo manual en español en esta página: http://php.net/manual/es/book.apc.php y, en esta otra:  http://docs.moodle.org/en/Installing_APC_in_Windows están detallados (en inglés) los pasos a seguir para llevar a cabo la instalación.

Yo, finalmente, me he limitado a descargar desde http://downloads.php.net/pierre/ el fichero php_apc-3.1-svn20101116-5.3-vc6-x86.zip. Una vez descomprimido, he instalado el fichero php_apc.dll en la carpeta de extensiones de PHP (en mi caso C:\PHP\ext) y he editado php.ini añadiendo extension=php_apc.dll en el apartado "Windows Extensions". El fichero php_apc.pdb también contenido en el ZIP lo he ignorado, ya que desconozco su función.

He rearrancado Apache y verificado que aparece el bloque APC en el consultando un pfpinfo().

Si se instala una versión no adecuada de APC, Windows da directamente un error al intentar arrancar Apache. Esto me ha pasado probando con otros ficheros de http://downloads.php.net/pierre/ que, obviamente, no eran los correctos. Por si sirve de ayuda, el instalador de PHP que utilicé en su momento fue php-5.3.4-Win32-VC6-x86.msi.