Mostrando entradas con la etiqueta loco. Mostrar todas las entradas
Mostrando entradas con la etiqueta loco. Mostrar todas las entradas

7.9.11

¿Pachequés o flexo?

Disculpen el título. Nel, ni se que dije.

Bueno... aquí traigo otra de las cosas locas -y divertidas- que me laten de PHP, ya me dirán.
Trabajando un poco en un proyecto que tengo alojado en mi cuenta de GitHub quise darle la vuelta a un problema especifico: diseñar una API que fuese amigable y divertida a la vez, desde luego me refiero al lenguaje mismo y no más.

Así pues descubrí que dos conceptos pueden existir bajo el mismo nombre, y hablo en serio:

function foo()
{
}

class foo
{
}

¿Y que chingados con eso?

Pues eso, de alguna extraña forma php permite nombrar de la misma manera una función y/o clase. Esto evidentemente nos brinda la posibilidad de escribir una serie scripts de diversa índole bajo el mismo "namespace" o algo parecido.

Vamos a imaginar una librería para manejar sesiones:

session_start();

class session
{
  public static function fetch($item)
  {
    return $_SESSION[$item];
  }
  public static function assign($item, $value)
  {
    $_SESSION[$item] = $value;
  }
  public static function remove($item)
  {
    unset($_SESSION[$item]);
  }
}

function session($item, $value = NULL)
{
  if (func_num_args() === 1)
  {
    return session::fetch($item);
  }
  elseif (is_null($value))
  {
    session::remove($item);
  }
  else
  {
    session::assign($item, $value);
  }
}

En mi experiencia esto facilita las cosas de una forma sumamente agradable y consistente, si no me creen hagan la prueba.

¡Diviertanse!