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().
Me ha gustado el ejemplo para mostrar en tu web las visitas y las páginas vistas de tu web como muestra Feedburner los suscritores que tienes en el feed. Para mostrarlo haremos uso de la librería GAPI, la cual accede a los datos que ofrece Google Analytics:
Kohana es un framework de PHP que deriva de CodeIgniter, el cual ya he comentado aquà que me gusta bastante. Basado inicialmente en CI, posee las mismas caracterÃsticas que este: seguro, liviano, fácil de aprender, MVC, compatible con UTF-8 y fácilmente extensible.
PHP5: es estrictamente PHP, lo que aporta la programación orientada a objetos.
El diseño de patrones MVC continua el de CI: por lo que, aunque son diferentes, un usuario de CI no tendrá problemas para adaptarse al de Kohana.
Dirigido por una comunidad: no por una empresa, una comunidad de desarrolladores puede dar respuestas más rápidas al no estar limitadas por las decisiones de una empresa.
Los datos GET, POST, COOKIE y SESSION funcionan como se esperan: no se limita su uso, aunque si se ofrece el mismo tratamiento ante ataques XSS que ofrece CI.
Recursos, modulos y herencia en cascada: los controladores, librerÃas, helpers y vistas pueden ser cargados desde cualquier lugar de la aplicación, del sistema o de módulos. Las opciones de configuración se heredan y pueden ser modificadas dinámicamente por cada aplicación.
No hay conflictos de nomenclaturas: se usan sufijos en las clases (por ejemplo _Controller) para evitar conflictos.
Carga automática de clases: las librerÃas, controladores, modelos y helpers no se precargan, sino que se cargan dinámicamente cuando se solicitan.
Los helpers son clases estáticas y no funciones: en vez de usar form_open() usarÃamos form::open().
Manejador de eventos: los eventos pueden ser añadidos, modificados o eliminados de forma dinámica, permitiendo cambios en la ejecución de los procesos sin tener que modificar el core.
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' );
Hay muchos consejos para agilizar tus scripts de PHP, pero en este caso se concentran en el uso de funciones y sus funciones alias. Por lógica la llamada a una función será más rápida que la llamada a una función alias, salvo en un caso que la verdad me sorprende.
Los porcentajes que se muestran son reales, pero quizás no sean perceptibles, ya que el uso de estas funciones puede ser mÃnimo en un desarrollo, pero bueno, si algo de tiempo obtenemos, mejor que mejor.
Las funciones son las siguientes:
sizeof y count: count es un 12% más rápida.
is_int y is_integer: is_int es un 9% más rápida.
chop y rtrim: rtrim es un 7% más rápida.
doubleval y floatval: floatval es un 4% más rápida.
fwrite y fputs: fputs es un 23% más rápida, esta es la comparativa que me sorprende, porque fputs es alias de fwrite. Que alguien me lo explique, ¿una diferencia del 23%? o no son alias o el ejemplo está mal medido.
implode y join: implode es un 5% más rápida.
ini_alter y ini_set: ini_set es un 19% más rápida.
VCL para PHP es un framework pensado para ser usado en el IDE Delphi for PHP. Quizás no sea el framework ideal, pero permite realizar aplicaciones de forma rápida, y eso, en muchos proyectos, suele ser lo que importa.
Nos ofrece la posibilidad de crear aplicaciones orientadas a objetos, sistema MVC, internacionalización, motor de plantillas, abstracción Ajax, abstracción de la base de datos, filtros para los datos de entrada e integración con webservices.
Se puede ver unos ejemplos aquí
Gracias InnovacionWeb.com por el aviso