Thomas Boutell, el desarollador de la librería GD para la generación dinámica de imágenes propuso al equipo de PHP que se hicieran cargo de la librería GD, debido a la falta de tiempo de la que disponía. PHP no ha tardado en responder (2 días) aceptando el encargo, indicando entre otras cosas que no ven necesario el cambio de liciencia de GD y que mantendrán el soporte para otros lenguajes como C.
Una buena noticia para todos. PHP se hace cargo de GD
Vía / Menéame
Ha salido a la luz la nueva versión de PHP, en este caso la versión 5.2.0, en la cual existen una gran cantidad de novedades y mejoras.
Para aquellos que tengan versiones iniciales de PHP 5.x es conveniente que la actualicen, existiendo una guÃa que nos dice cómo hacerlo. PHP 5.2.0
VÃa / Fresqui
loadFile(): carga cualquier archivo con código php, envuelve a la funcion include(). Tiene 3 parámetros, el nombre del archivo, el directorio dónde se situa, si es NULL buscará solamente en el include_path y un flag para indicar si se usa include o include_once. Si se produce cualquier error lanza una excepción Zend_Exception.
loadClass(): carga una clase, la cual se indica como parámetro, a parte se puede decir el directorio donde se encuentra. Si el directorio es null y el nombre de la clase tiene guiones bajos (_), usará los subrayados para localizar los directorios: p.e. Paquete_Componente_Clase lo sustituirá por Paquete/Componente/Clase.php. Si se produce algun error, se lanza una Zend_Exception.
loadInterface(): funciona igual que loadClass pero para interfaces.
isReadable(): es igual que la función is_readable de PHP pero con la posibilidad de buscar en el include_path.
dump(): ejecuta la función var_dump de PHP pero usando etiquetas pre de HTML y seleccionando se si realiza un echo o no.
register(): registra un objeto en el espacio de la aplicación, una vez registrado, cuando se recupera, siempre será la misma instancia. Se le debe pasar por parámetro el nombre y la variable.
registry(): devuelve una variable del registro cuando se le pasa su nombre por parámetro o una lista de todas las variables del registro cuando se pasa null.
Ahora viene la parte más complicada, y digo complicada porque sinceramente he tenido que mirar el código porque algo me fallaba cuando seguía lo que decía la documentación.
El nombre del fichero JSON tiene el siguiente formato [dominio de traducción]-[idioma]-[handler del fichero].json, total nada.
Dominio será el que usemos para traducir, en el ejemplo sería mi-plugin:
__( 'Hola que tal', 'mi-plugin' );
Idioma es el código del idioma, en este caso es_ES
Y por último el handler del fichero es el primer parámetro que usamos en wp_enqueue_script
Lo podemos ver todo en un ejemplo final:
wp_enqueue_script(
'mi-plugin-handler', // El handler mencionado anteriormente
$blocks_script, // Nuestro path
[
'wp-i18n', // De referenciar al menos a wp-i18n
],
);
wp_set_script_translations( 'mi-plugin-handler, 'mi-plugin', plugin_dir_path( __FILE__ ) . 'languages' );
Si nos encontramos con la necesidad de usar Zend Framework con Code Igniter, podemos encontrarnos problemas a la hora de juntar ambos frameworks. El problema se encuentra en que Code Igniter separa el código en diferentes directorios para el core y la aplicación.
El truco es crear un helper (funciones que realizan pequeñas tareas) y la funcionalidad de autoload de Code Igniter. El helper que se crea el autor solo añade un directorio en el include_path, y el directorio que añadirá será el del Zend Framework.
Despues en el autoload del Code Igniter se le añade se que cargue automáticamente el helper que nos hemos creado. Using the Zend Framework with Code Igniter (an alternative)