Recientemente he comenzado a utilizar cada vez más la gestión de excepciones en PHP, lo que (al menos en teoría) permite escribir un código sencillo y fácil de mantener.

En un proyecto reciente, uno de los desafíos más importantes consistía en actualizar una base de código bastante antigua, en la que abundan ejemplos de funciones que, simplemente, deben dejar de existir. Dado que es un proyecto considerablemente grande y complejo, quise experimentar con un método que me permitiera registrar dónde se utilizan esas funciones para analizar cuidadosamente su reemplazo.

De este modo, el método propuesto se compone de tres partes: una clase para la creación de Excepciones; un manejador de excepciones y finalmente la reescritura de las funciones obsoletas para utilizar este método.

La clase para la creación de este tipo de excepciones es bastante básica, pero cumple con lo necesario:

Extiende la clase base de excepciones con pocas modificaciones:

  • El constructor recibe dos parámetros: el primer parámetro es el nombre de la función (que puede ser pasado como __FUNCTION__ para mayor facilidad) y el segundo es una propuesta para reemplazar la función original
  • Sobreescribo el método __toString() para generar un mensaje de error automáticamente

En segundo lugar, el manejador de excepciones default:

Adaptado para funcionar en el entorno de WordPress: si está activa la constante para permitir el registro de errores, va a escribir el error en el log llamando al método __toString() de la excepción junto con el stack trace para ubicar desde dónde se invoca a la función.

Finalmente, toca reescribir la función obsoleta:

En general, la idea es crear un bloque try...catch donde se genere la excepción y se ejecute el código obsoleto en el catch.

Un poco más complejo que simplemente buscar dónde se usa la función, pero mucho más útil para entender el funcionamiento del sistema.

A todos nos ha pasado: una idea que por un momento suena brillante, pero que al pensarlo más detenidamente empieza a revelar que no es simplemente inadecuada, sino simplemente mala… eso sucede con la idea de que un organismo de la ONU se haga cargo del gobierno de Internet, la que ya ha sido criticada por Vinton Cerf (uno de los padres de la red) y hasta ironizada… aunque lamentablemente, tampoco hay nadie que de una alternativa seria al control que EEUU mantiene sobre la red.

Generar un archivo CSV es una de esas tareas que probablemente a todos nos ha tocado hacer, y aun más probable es que nos terminemos ahogando en un vaso de agua cuando en realidad es algo bastante simple.

No es necesario preocuparnos por tener que escapar caracteres ni escribir demasiado código, ya que a partir de PHP 5.1.0 contamos con la función fputcsv() que se ocupa de prácticamente todo. Un ejemplo sencillo para generar un archivo descargable a partir de una consulta cualquiera a una base de datos:

La función recibe dos parámetros: un archivo (abierto con fopen()) y un array de valores. En el ejemplo, se muestra una forma de generar un archivo CSV descargable a partir de una consulta a la base de datos (utilizando la clase wpdb de WordPress, aunque obviamente podría aplicar para cualquier otro caso).

Por supuesto, también existe la función complementaria para leer un archivo CSV, fgetcsv().

Why Are People Resigning Before The Copyright Industries’ Will? | TorrentFreak

But no matter what, don’t ever accept the resigned position that the copyright industries determine law. They don’t. They’ve gotten away with wishlists because politicians haven’t cared. They do care when tens of thousands of people make noise, and we can do that. We know absolutely well that we’re capable of that and much more.

Why Are People Resigning Before The Copyright Industries’ Will? | TorrentFreak

Es bastante frecuente que un cliente tenga el registro de más de un nombre de dominio para su sitio web, así como también que desee que su sitio esté accesible a través de cualquiera de sus dominios… sin embargo, disponibilizar el mismo contenido a través de distintas URL no es una buena idea, sino que siempre debemos preferir configurar un dominio como el principal.

A continuación, por qué es preferible utilizar solamente un dominio para tu sitio, y cómo configurarlo en distintos servidores web.

How Mickey Mouse Evades the Public Domain

How Mickey Mouse Evades the Public Domain tells the story of how every time the cartoon it’s about to enter the public domain, corporate lobbying it’s able to bend existing legislation to protect private interests.

A Practical Guide to SVGs on the web

A Practical Guide to SVGs on the web — might as well be called “everything you need to know for a modern use of SVGs on your website”, from preparing, implementing to manipulating and animating…

UX Myths

UX Myths collects the most frequent user experience misconceptions (such as “people don’t scroll”, “mobile users are distracted” or “accesible sites are ugly”) and explains why they don’t hold true, with research findings and articles.

Patronizing Passwords

Password Security Guide it’s an alternative interaction pattern for password meters that not only helps your users choose a better password but also explains and educates.