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
oData es un protocolo creado por Microsoft para obtener y actualizar datos en aplicaciones. Para ello hace uso de HTTP, AtomPub y JSON para garantizar el acceso a la información desde cualquier aplicación, servicio o almacenamiento. El cual dispone de un SDK, includo PHP.
Librería PHP que nos permite obtener los datos de Google Analytics tipo Visitas y Páginas Vistas de forma muy sencilla y cómoda:
//session_start for caching, if desired
session_start();
//get the class
require 'ga/analytics.class.php';
//sign in and grab profile
$analytics = new analytics('david@davidwalsh.name', 'myP@ssw0rd');
$analytics->setProfileByName('davidwalsh.name');
//set the date range for which I want stats for (could also be $analytics->setDateRange('YYYY-MM-DD', 'YYYY-MM-DD'))
$analytics->setMonth(date('n'), date('Y'));
//get array of visitors by day
print_r($analytics->getVisitors());
//get array of pageviews by day
print_r($analytics->getPageviews());
H2O es un sistema de plantillas para PHP que nos facilita la realización de la parte de vistas del desarrollo de nuestra aplicación con formato MVC.
La sintaxis es sencilla, ya que se basa en el uso de etiquetas para variables ( {{ variable }} ) y para bloques/instrucciones ( {% if condicion %} … {% endif %} ).
Yo no soy partidario de usar estos tipos de lenguajes de plantillas, porque no dan buen rendimiento y porque es aprender algo nuevo y diferente. Claro que, en algunos proyectos, la realización de las páginas las hacen personas sin conocimientos de desarrollo web o PHP, por lo que estos sistemas les facilitan la labor. H2O
Social Web CMS es un sistema de noticias social al estilo de Digg o Menéame que está desarrollado en PHP y MySQL y que nos permite crear nuestro clon de forma sencilla.
Permite la inserción de artículos por parte de los usuarios, votar los artículos, realizar comentarios, valorar los comentarios, buscar contenidos, obtener feeds para secciones, categorías y usuarios, disponer de perfiles, mensajes privados … Además dispone de una administración que permite gestionar el anti-spam, bloquear URLs, importar RSS, … Social Web CMS
La gente de PHP Freaks nos ofrece una completa guía para iniciarse en el debug de aplicaciones PHP.
Empieza indicándonos cómo permitir los logs de error, ya sea mediante código o mediante la modificación del php.ini, en caso de que sean errores sintáxicos.
Después nos explica algunos de los errores más comunes que solemos comenter y los diferentes mensajes de error que nos llegan (fatal errors, warnings y notices), el modo de reportar los diferentes errores y algunos ejemplos.
Se trata de una guía básica, pero para quienes empiecen en esto, les va a venir muy bien. Recordad que un debug es importante y un gestor de erorres debe estar en cada aplicación.
Debugging: A Beginner’s guide
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' );