Devolver valores en includes de PHP

Está claro que cada día aprendo algo nuevo en PHP, quizás esto lo conoce todo el mundo, pero en mi caso lo desconocía. Se trata de que los include, requiere devuelvan un valor (muy útil con ficheros de configuración).

Si tenemos este fichero:

return array(
'hostname' => 'localhost',
'database' => 'test',
'username' => 'test',
'password' => 'test',
);

Al insertarlo en otro script, lo podremos asignar a una variable:

$config = include 'config.php';
var_dump($config);

The return value of include

Alternativa a MySQL Query Analyzer

MySQL ha lanzado su nueva versión de MySQL Query Analyzer dentro de MySQL Enterprise, de la cual hablan muy bien en casi todos los blogs. Para aquellos que usemos la versión Community, podemos usar una alternativa gratuita a esa herramienta.
Para ello debemos instalar los parches que ofrece Percona los cuales, entre otras cosas, permiten obtener métricas desde el propio servidor. También habrá que utilizar mysqlsla que parsea, filtra, analiza y ordena los logs de MySQL para crear informes personalizados de las queries y sus meta-propiedades.
An alternative to the MySQL Query Analyzer

Laboratorio: postear en WordPress mediante GTalk o Jabber

Hace tiempo hablaba de una librería para trabajar con Jabber desde PHP y me preguntaban si se podía usar para realizar un cliente y realizar acciones con él. Pues he usado esta librería para crearme un cliente de jabber que espere mensajes y los publique en WordPress, para lo cual también he necesitado la librería phpxmlrpc.

Yo el ejemplo lo he hecho con DreamHost y la posibilidad que ofrece de crear un servidor Jabber, claro que también se puede hacer mediante GTalk.

Lo primero es tener dos cuentas: una para el cliente y otra para ti. Cuando ya las tengamos, deberemos autorizar la una a la otra para que puedan enviarse mensajes. Esto es la parte más chapuza ya que hay que hacerlo con clientes tipo Gtalk o Pidgin.

Tan solo nos queda instalar el script en nuestro servidor o en nuestro ordenador (aunque casi mejor en un servidor) y configurarlo. Se copia en el servidor y se edita el fichero orejas.php y modificar los siguientes valores:

  • $blog_usuario: nombre del usuario del blog
  • $blog_contraseña: contraseña del usuario del blog
  • $blog_url: url del blog de WordPress
  • $blog_xmlrpc_path: path al script xmlrpc de WordPress
  • $blog_puerto: puerto del blog (lo más seguro es que no haya que modificarlo)
  • $post_tags: etiquetas por defecto del post que se va a crear
  • $post_separador: separador para diferenciar en el mensaje entre título, contenido y etiquetas
  • $post_titulo_defecto: título por defecto del post
  • $jabber_host: servidor de Jabber, para GTalk creo que es gtalk.google.com
  • $jabber_usuario: usuario de jabber
  • $jabber_contraseña: contraseña del usuario de jabber
  • $jabber_puerto: puerto del servidor de jabber (lo más seguro es que no haya que modificarlo)

Para postear en WP habrá que mandar un mensaje al cliente con el siguiente formato:

titulo##contenido##etiqueta1,etiqueta2,...,etiquetan

Contenido admite HTML y retornos de carro que serán convertidos en párrafos. Si no se quiere indicar título o etiquetas, pues se puede escribir el contenido solamente. El separador ## es modificable. Cuidado si vais a escribir retornos de carro, porque si pulsas sólo INTRO te enviará el mensaje.

Una vez enviado el mensaje, el script posteará en WP y devolverá la URL del nuevo post.

Supongo que se pueden hacer más cosas y mejor, pero para lo que yo lo necesito me basta y me sobra.

Descarga: orejas

Social Web: clon de Digg, Meneame o Reddit en PHP y MySQL

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

SQL injection cheatsheet

Interesante hoja de trucos para evitar SQL Injection en nuestras aplicaciones. La explicación es bastante intensa y no solo se centra en MySQL sino en otros motores como Microsoft SQL Server, ORACLE y PostgreSQL, aunque para estos últimas son pocos los consejos.
SQL Injection Cheat Sheet

jMaps: Google Maps mediante jQuery

jMaps es una librería de jQuery que facilita la integración de los mapas de Google Maps en nuestra web, sin necesidad de conocer el API de Google Maps.
Permiote dada una dirección válida podemos obtener su localización y al revés, buscar direcciones hacia y desde cualquier localización, añadir y quitar marcadores, polígonos, capas, publicidad de adsense…
jMaps
Vía / Script & Style

Crear PDFs con PHP y Haru

Un gran tutorial que explica cómo crear documentos PDF con Haru, una librería realizada en C que nos permite generar PDFs con texto, líneas e imagenes, añadir enlaces y anotaciones, comprimir documentos, usar TTFs, PDFs encriptados, y muchas cosas más.
El tutorial empieza mostrándonos cómo instalar Haru en nuestro PHP, y luego sigue con una serie de ejemplo sencillos hasta decirnos como añadir shapes o proteger el documento.
Dynamically Generating PDF Files with PHP and Haru

H2O: lenguaje de plantillas para PHP

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