Crear helpers en Yii

Veamos como crear helpers en Yii.

Lo recomendable es crear el fichero protected/components/helpers.php y ahí crear todas las funciones helper que necesitemos.

El siguiente paso será incluir este archivo de helpers en el fichero de principal de configuración justo antes del array de configuración, de esta forma:

//Cargar helpers
require_once( dirname(__FILE__) . ‘/../components/helpers.php’);

Ejemplo:

<?php
// protected/components/helpers.php 
// Aqui van los helpers

//Comprobar que no existe la función
if(!function_exists("imprimirTiempo")){
    
    //Esta función formatea una fecha e imprime hace cuanto tiempo fue.
    function imprimirTiempo($fecha,$hora){
        $start_date = new DateTime($fecha." ".$hora);
        $since_start = $start_date->diff(new DateTime(date("Y-m-d")." ".date("H:i:s")));
        $hace="Hace ";
        if($since_start->y==0){
            if($since_start->m==0){
                if($since_start->d==0){
                   if($since_start->h==0){
                       if($since_start->i==0){
                          if($since_start->s==0){
                             $medida_tiempo= $since_start->s.' segundos';
                          }else{
                              if($since_start->s==1){
                                 $medida_tiempo= $since_start->s.' segundo';  
                              }else{
                                 $medida_tiempo= $since_start->s.' segundos';  
                              }
                          }
                       }else{
                          if($since_start->i==1){
                              $medida_tiempo= $since_start->i.' minuto';  
                          }else{
                            $medida_tiempo= $since_start->i.' minutos'; 
                          }
                       }
                   }else{
                      if($since_start->h==1){
                        $medida_tiempo= $since_start->h.' hora';
                      }else{
                        $medida_tiempo= $since_start->h.' horas'; 
                      }
                   }
                }else{
                    if($since_start->d==1){
                        $medida_tiempo= $since_start->d.' día';
                    }else{
                        $medida_tiempo= $since_start->d.' días'; 
                    }
                }
            }else{
                if($since_start->m==1){
                   $medida_tiempo= $since_start->m.' mes'; 
                }else{
                    $medida_tiempo= $since_start->m.' meses';
                }
            }
        }else{
            if($since_start->y==1){
                $medida_tiempo= $since_start->y.' año';
            }else{
                $medida_tiempo= $since_start->y.' años';
            }
        }
        $resultado=$hace.$medida_tiempo;
        return $resultado;
    }
}//Fin helper imprimirTiempo

//A partir de aquí meter todas las funciones helper que quieras

?>

Ahora en una vista o controlador tenemos a nuestra disposición esta función.

<h1>Probando mis helpers</h1>
<?php

$fecha="2014-05-14";
$hora="13:04:01";
echo imprimirTiempo($fecha, $hora);

?>

crear helpers en yii framework

Más información:
http://www.yiiframework.com/wiki/165/understanding-autoloading-helper-classes-and-helper-functions/

Victor

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post

Poner un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *