¿Un mal artículo en Nettuts+?
Hoy, para mi sorpresa, me he encontrado con un artículo bastante malo en una página que para mi es un eje focal del diseño y la programación Web: Nettuts+.
Este artículo es el que me parece malo, y aprovecho para explicar el porqué, y cómo se debería abordar realmente esta situación.
Helpers (o librerías de funciones útiles)
Para empezar, está el tema de hacer funciones de ayuda fuera de la estructura de un objeto. Esto puede estar muy bien cuando no tenemos ni idea de PHP, pero cuando empezamos a ver de qué va esto, rápidamente nos damos cuenta de que hay que darle una organización que no está implícita en el propio lenguaje. Por eso, solemos utilizar un sistema MVC para desarrollar aplicaciones.
Los helpers que habitualmente contienen los sistemas MVC me parecen bastante mal ideados al plantear funciones en vez de método de clases.
Tomemos como ejemplo el siguiente código:
class TimeHelper
{
private static $time = '';
public function get_time ( $new = true )
{
if ( $new )
$this->time = time();
return $this->time;
}
}
$t = new TimeHelper();
$th->get_time();
# En el caso de algunos métodos, se podría invocar como
TimeHelper::get_time();
Nada nos impide mantener estas clases de ayuda en una variable global en la que vayamos guardando las distintas instancias de helpers, o directamente si estamos utilizando un MVC, instanciarlos en el controlador. De esta forma, para las funciones que tienen que generar código recurrente, como el del ejemplo, podemos dejarlo almacenado y que seguirá las normas de encapsulación habituales de la POO.
Plantillas para helpers
El segundo punto por el que me parece poco adecuado (y en todos los frameworks ocurre lo mismo) es que el helper sólo debería crear información para que el modelo (o más comunmente el controlador) haga con esa información lo que le parezca necesario, como almacenarlo en una variable para pasárselo posteriormente a la vista, o seguir generando información a partir de el.
Por lo tanto, a mi personalmente me gusta más crear un directorio "helper" dentro de la plantilla de la aplicación que esté desarrollando en ese momento. Estas plantillas normalmente sólo hay que hacer copiar/pegar cuando desarrollas un nuevo sitio, y tiene la ventaja de que le puedes modificar el formato y aplicar estilos de CSS adicionales. Requiere pensar un poco mejor cómo vas a estructurarlo, pero las ventajas me parecen mayores a sus desventajas.
Comentarios
No hay comentarios para este artículo, o no tienes permisos para verlos.