Ya hace un año hablé de Suhosin, un sistema avanzado diseñado para proteger los servidores y a los usuarios de defectos conocidos y desconocidos del core de PHP y de las aplicaciones realizadas con PHP.
Ahora, en el relanzado PHPFreaks nos muestran como realizar la instalación en Debian y CentOS, y cómo configurarlo.
Por cierto, curioso que un manual tan corto te lo dividan en 4 páginas, será para ganar visitas… Hardening PHP with Suhosin
Horde es otro framework PHP que ofrece las tÃpicas herramientas para crear aplicaciones web: configuración de la aplicacion, compresión, detección de navegador, MIME y mucho más.
Horde está usa PEAR en su código, algo que a mà personalmente no me entusiasma mucho. A parte da instrucciones para mejorar el rendimiento (tunning). No solo funciona con Apache, sino con otros servidores web como IIS.
Dentro de este proyecto, se reúnen otros proyectos como una aplicación web, una suite groupware, gestor de tickets, visor de repositorios, etc… Horde
Resumen de algunas variables que podemos obtener del servidor y que nos pueden ayudar en nuestras aplicaciones:
$_SERVER[‘REQUEST_URI’]: devuelve la URL con la que se accede al script que se está ejecutando. Devolvería algo así como /script.php?param1=val1¶m2=val2.
$_SERVER[‘DOCUMENT_ROOT’]: devuelve el directorio raíz del servidor web, algo así como /usr/tusitio/www.
$_SERVER[‘HTTP_HOST’]: devuelve el nombre del dominio (por ejemplo, sentidoweb.com). Esto puede ser muy útil cuando se quieren usar paths absolutos en vez de relativos y queremos que funcione la aplicación en el servidor de desarrollo y en el de real.
$_SERVER[‘HTTP_USER_AGENT’]: nos devuelve información del navegador, cuál es y en qué sistema operativo se ejecuta. Útil si tenemos que hacer algún apaño por incompatibilidad de navegadores, para llevar tema de estadísticas o por ejemplo para devolver un archivo para descarga dependiente de S.O.
$_SERVER[‘PHP_SELF’]: devuelve el nombre del fichero que se está ejecutando.
$_SERVER[‘QUERY_STRING’]: devuelve la lista de parámetros que se pasan por URL (lo que sigue después de la interrogación).
$_SERVER[‘REMOTE_ADDR’]: devuelve la dirección IP de la máquina que está accediendo al script.
$_SERVER[‘SCRIPT_FILENAME’]: devuelve el path absoluto del script que se está ejecutando.
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' );
poMMo es una de las mejores herramientas para envío de newsletters o mailing, el problema es que la última versión es del 2008 y no tienen ni API ni nada parecido, pero se puede simular mediante CURL, lo cual nos puede venir muy bien para añadir mailing a nuestras aplicaciones con CodeIgniter o WordPress.
Sphinx (SQL Phrase Index) es un motor que permite buscar texto. Normalmente es un motor de búsqueda independiente, que provee de forma rápida y eficiente resultados relevantes a otras aplicaciones. Está diseñado para ser integrado con MySQL y lenguajes de programación (actualmente PHP). Los datos se pueden recuperar mediante conexión directa a MySQL o mediante XMLs.
Dispone de cuatro utilidades: indexer para crear Ãndeces de texto, search para buscar desde la lÃnea de comandos, searchd es un demonio que busca en los textos desde aplicaciones externas y sphinxapi un API para lenguajes de programación (PHP).
Entre las caracterÃsticas que ofrece nos encontramos con lo siguiente:
Alta velocidad de indexación (+10Mb/s)
Alta velocidad de búsqueda (0.1 s. en 2-4 Gb de texto)
Alta escalabilidad
Soporte para búsquedas distribuidas
Soporte para MySQL nativo (admite tablas MyISAM y InnoDB)