Como arreglar los errores de PHP-OpenID en PHP 5.3

El hecho de que la librería para OpenID de JanRain es la más popular no se debe a sus virtudes precisamente… Se debe más bien a que el resto de librerías que hay para PHP son aún peores. El mayor problema de esta librería es que intenta mantener la compatibilidad con PHP 4 a base de utilizar un montón de código obsoleto (deprecated) que, finalmente, ha dejado de funcionar en PHP 5.3.

Aún así, todavía no ha habido nadie que se digne a reescribir esa librería para PHP 5 así que los que queremos actualizar a PHP 5.3 (o necesitamos hacerlo, más bien) estamos jodidos. Por suerte, hemos sido muchos los que nos hemos encontrado con este mismo problema y al final hemos conseguido una solución que sirve de momento. Es una chapuza bastante importante, pero de momento funciona.

Si cuando leáis esto no lo han arreglado todavía en la versión oficial, podéis descargar la librería con todos los cambios que he tenido que hacer: PHP OpenID arreglado para PHP 5.3.

Lo he explicado todo en una receta de The Source Cookbook (está en inglés, pero se entiende bien):

HTML 5: Algunos elementos nuevos

HTML 5 será la siguiente gran revisión de HTML, el lenguaje que se utiliza para diseñar las páginas web. Ya sé que a la mayoría os dará más o menos igual pero como a mí sí me interesa bastante, voy a comentar un poco por encima algunos de los elementos que se introducirán en la siguiente versión. Toda la información la he sacado del siguiente documento del W3C: HTML 5 differences from HTML 4.

HTML 5 incluirá nuevos elementos para cubrir muchas necesidades que han surgido en los últimos años:

  • section: Indica el ámbito de una sección de la página. Se puede usar con h1-h6 para estructurar el documento.
  • article: Indica un trozo de contenido en un documento. Se puede usar para una entrada de un blog o un artículo de un periódico.
  • aside: Trozo de documento poco (o nada) relacionado con el resto del documento (el típico sidebar de un blog, por ejemplo).
  • header: Autodescriptivo: Representa la cabecera de la página o de una sección.
  • footer: Igual que header pero para los pies de página o sección.
  • nav: Representa una sección del documento con elementos de navegación (menús, por ejemplo).
  • dialog: Una muy curiosa; sirve para un diálogo entre dos personas. Fijaros en el ejemplo a continuación.

<dt> Costello
</dt><dd> Look, you gotta first baseman?
</dd><dt> Abbott
</dt><dd> Certainly.
</dd><dt> Costello
</dt><dd> Who's playing first?
</dd><dt> Abbott
</dt><dd> That's right.
</dd><dt> Costello
</dt><dd> When you pay off the first baseman every month, who gets the money?
</dd><dt> Abbott
</dt><dd> Every dollar of it.
  • figure: Bastante interesante: Puede usarse para asociar un título a una imagen o un video.

Example
  • audio y video: Intentan ser el equivalente a la actual etiqueta img, pero para sonido y vídeo. Prometen facilitar mucho la inclusión de vídeos y sonidos en las páginas sin necesidad de flash u otras soluciones "raras".
  • Y muchas mas... Podéis ver el listado completo en el documento del W3C HTML 5 differences from HTML 4.