Inspekt es una librería para PHP 4 y 5 que nos filtra la entrada de datos para evitar posibles ataques. Su uso es bastante sencillo y automático por lo que podemos añadir esta librería tranquilamente en nuestras aplicaciones. Basado originalmente en la librería Zend_Filter_Input del framework de Zend.
Mediante unos simples métodos podremos filtrar el contenido de las variables $_POST, $_GET, $_COOKIE, $_SERVER, $_FILES y $_ENV, o todas a la vez. Además ofrece métodos para validar los datos entrantes, por ejemplo saber si se trata de una IP, de un número, una URL y mucho más.
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' );
Crear ficheros Excel suele ser algo necesario en algunos proyectos debido a la implantación de este formato de ficheros. Una lástima que no se usen formatos estándar (.ODS), pero mientras tanto deberemos usar librerÃas como PHP Excel 2007.
PHP Excel 2007 nos permite escribir y leer ficheros Excel mediante PHP, aportando además numerosas caracterÃsticas como la representación en memoria de la hoja de cálculo, modificación de la información del fichero, fórmulas, unir celdas, protección mediante contraseña, estilos, saltos de lÃnea, ancho automático de columnas, filtros y muchas caracterÃsticas más. PHP Excel 2007
Comienzo: Symfony tiene mucha documentación y gente por detrás desarrollando y ayudando, algo de lo que anda un poco corto Zend.
Testing: Symfony viene con tareas de testing por lÃnea de comandos y genera una clase vacÃa para ello al crear un controlador. Mientras que Zend no ofrece soporte para testing.
Plantillas: Zend tiene un sistema de plantillas un poco verde al que hay que hacerle algunos hacks para realizar algunas cosas. Symfony, al contrario, su sistema de plantillas es muy maduro, al cual le puedes añadir módulos.
Plugins: más de lo mismo, Symfony es extensible, Zend no.
Módulos de bases de datos: Zend usa ActiveRecord, mientras que en Simfony le puedes añadir el motor que desees, incluso Zend_Db.
La gente de MySQL ha sacado a la luz unos drivers nativos de su base de datos para PHP. Una alternativa que solo funciona para PHP 6 y MySQL 4.1 o superior.
mysqlnd, que es como se llama esta librerÃa, es una sustitución de libmysql, pero no tienen intención de dejar de dar soporte a libmysql para evitar que aplicaciones anteriores fallen. Pero ofrecen novedades a tener en cuenta:
La licencia es PHP license, evitando posibles problemas de licencias.
mysqlnd a nivel C usa muchas funciones internas estables de PHP.
Todas las librerÃas esta almacenadas en el directorio ext/mysqli, por lo que no es necesario enlazar a librerÃas externas. Asà como no es necesario tener instalado el cliente de MySQL para compilar PHP con soporte para MySQL.
El rendimiento ha sido mejorado en varias zonas.
De todas formas, esta primera versión no está completa y se solo se han desarrollado las siguientes funcionalidades: conexiones persistentes, mysqli_fetch_all() y mysqli_get_cache_stats().
Lo que más me gusta en Java es el tratamiento de los errores mediante excepciones, en PHP no está tan logrado, pero se puede apañar para que tenga un funcionamiento parecido:
set_error_handler('error_handler');
function error_handler($errno, $errstr, $errfile, $errline) {
if (4096 == $errno) throw new Exception($errstr);
return false;
}
El código 4096 indica que el error es capturable, se produce un error pero no produce un situación inestable.
Después podremos capturar los errores de la siguiente manera:
try {
// Operación que produce error
} catch (ErrorException $e) {
// Tratar el error
}