Helpers

Un helper es una colección de funciones en una categoría particular, como su nombre lo indica, están destinados a ofrecer ayuda para resolver problemas pequeños.

Todos los Helpers están dentro del namespace Ocrend/Kernel/Helpers y aquellos que pueden ser utilizados dentro de las plantillas TWIG son herencias directas de Twig_Extension

Ocrend Framework no carga todos estos helpers por defecto, a excepción del helper Functions que se encuentra disponible para usar en toda la aplicación por defecto.

Cómo cargar un helper para usarlo

Para llamar a un Helper, sólo basta con añadir el namespace en la cabecera de nuestra clase y luego invocar sus métodos estáticos.


use Ocrend\Kernel\Helpers\MiHelper;
...
class ... {
	... function metodo() {
		MiHelper::la_funcion('parámetros');
	}
}					
					

Si queremos que nuestro Helper esté disponible en la vista del controlador que la está llamando, debemos añadir la extensión al template antes de renderizarlo


$this->template->addExtension(new MiHelper);
					

Desde nuestra plantilla twig, solo bastará con hacer el llamado de las funciones


{{ mi_funcion('parámetros') }}
					

NOTA: para que el helper pueda funcionar correctamente, éste debe ser compatible con Twig, la forma de revisar ello es viendo si éste hereda de Twig_Extension

Cómo añadir una función a un helper

Procedemos a editar el Helper, la ubicación sería ./Ocrend/Kernel/Helpers/ abrimos el archivo y creamos la función:


/**
  * ¿Qué hace?
  *
  * @param tipo_de_dato $nombre_de_parametro: ¿para qué se pasa este parámetro?
  *
  * @return tipo_de_dato ¿qué es ese dato que retorna? (si no retorna nada basta poner void)
*/
#( si no devuelve nada, o más de un tipo de dato no colocar nada en 'tipo_dato_devuelto' )
final public static function mi_funcion(tipo_de_dato $parametro) : tipo_dato_devuelto {
  #... todo el código
}
					

En caso de que el helper sea compatible con Twig, y se quiere que la función esté disponible en las plantillas, se debe proceder a editar el método getFunctions() añadiendo un elemento más al arreglo:


public function getFunctions() : array {
    return array(
        #nombre_de_la_funcion_en_twig es el nombre que usaremos desde twig para llamar a la función.
        #mi_funcion es el nombre de la función que cree en el helper, que será ejecutada cuando se llame desde twig a 'nombre_de_la_funcion_en_twig'
        new \Twig_Function('nombre_de_la_funcion_en_twig',array($this,'mi_funcion'))
    );
}					
					

Cómo crear un helper

Es importante no salirse del contexto, los helpers son bibliotecas de funciones con una categoría, si se crea un helper llamado XML por ejemplo, se da a entender que lo único que contendrá ese helper, es funciones encargadas de algún manejo relacionado con XML.

Para crear un helper llamado Ejemplo, procedemos a crear un fichero en ./Ocrend/Kernel/Helpers/Ejemplo.php el cual estará disponible en plantillas Twig.


namespace Ocrend\Kernel\Helpers;

final class Ejemplo extends \Twig_Extension {	

	# Listado de funciones del helper

	public function getFunctions() : array {
		return array(
			...
			new \Twig_Function('funcion_en_twig',array($this,'mi_funcion'))
			...
		);
	}	

	public function getName() : string {
        return 'ocrend_framework_helper_ejemplo';
    }

}