Crear Helper en Codeigniter

PIN
Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+

Los helper son basicamente funciones que nos ayudaran en el proceso del desarrollo que podemos llamar desde las vistas o controladores y no digo modelos por que no se deberia llamarlos desde hay.

crearlas son sumamente facil es mas si es que tienes una funcion ya escrita en php simplemente la puedes copiar y comodolar algunas cosas si es que esta trabajando con base de datos de lo contrario no deberia ser necesario mover nada y como suelo hacer poco floro y mas accion.

ubicamos la carpeta donde debemos tener los helper y no es nada dificil por que codeigniter ya viene con una carpeta con ese nombre.

ubicacion_helper

ahora puedes crear un archivo php pero debe tener un sufijo «_helper» por ejemplo en la imagen tengo 2 helper que se llama sistema y web pero cumpliendo con el requisito de codeigniter se debe colocar «_helper» y entonces queda sistema_helper y web_helper.

ahora abrimos el archivo y comenzamos a programar y veran lo facil que es en este caso voy a crear 2 ejemplos de helper 1 basica y la otra utlizando base de datos.

1) crearemos un helper que nos ayude a crear url amigables una funcion que le pasen un string y te devuelva una cadena para que pase tranquilamente como url.

 

//esto no es obligatorio pero por un tema de seguridad que nos dice si BASEPATH no esta definido no va a cargar
if (!defined('BASEPATH')){exit('No direct script access allowed');}
//aqui es simple preguntamos si no existe la funcion urls_amigables la podemos crear de lo contrario no se crea
if (!function_exists('urls_amigables')) {
    //creamos la funcion y no explico mas sobre que es cada linea por que eso ya es otro tema.
    function urls_amigables($url) {
    $url = strtolower($url);
    $find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');
    $repl = array('a', 'e', 'i', 'o', 'u', 'n');
    $url = str_replace ($find, $repl, $url);
    $find = array(' ', '&', '\r\n', '\n', '+'); 
    $url = str_replace ($find, '-', $url);
    $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
    $repl = array('', '-', '');
    $url = preg_replace ($find, $repl, $url);
    return $url;
    }
}


 

2) queremos un helper que revise la base de datos y sepa cual es el ultimo codigo que se tiene y a ese codigo le sumamos 1 para que sea consecutivo la secuencia de codigos (lo especial es como instaciamos para poder trabajar con la base de datos)

//esto no es obligatorio pero por un tema de seguridad que nos dice si BASEPATH no esta definido no va a cargar
if (!defined('BASEPATH')){exit('No direct script access allowed');}
//aqui es simple preguntamos si no existe la funcion urls_amigables la podemos crear de lo contrario no se crea
if (!function_exists('codigo_compra'))
{
    function codigo_compra()
    {
        //para poder usar la base de datos en el helper debemos instanciar al core de codeigniter 
        $CI= & get_instance(); 
        //al ser instanciado es el equivalente a $this que se tiene en control
        //el siguiente proceso facil de entender igual no va al caso
        if ($CI->db->get("pedidos")->num_rows()>0)
        {
            $num=$CI->db->order_by("id","desc")->get("pedidos")->row_array();
            $num= (int) $num["codigo"];
            return str_pad($num+1, 8, "0", STR_PAD_LEFT);
 
        }
        else 
        {
            return str_pad(1, 10, "0", STR_PAD_LEFT);
        }
    }
}

si ya tiene cu helper lo unico que falta es cargarlo en al carpeta config en el archivo autoload.php y buscamos la linea donde muestra:

$autoload['helper'] = array();

ahora solo debe colocar el nombre de tu helper para que cargue y no es necesario que coloques el sufijo «_helper»

$autoload['helper'] = array("mihelper");

Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+

Hi, I'm luis rodriguez

Hola, Soy Luis Rodriguez, radico en Lima – Perú, formado en una carrera informática, desempeñando desde el 2007 como programador web y viendo proyectos desde Front End y Back End a lo que me perfile como Full Stack. Esta Experiencia junto a mi interés en la Analítica Web me ayudó mucho entender el funcionamiento interno de las herramientas de analítica, con las que vengo trabajo activamente desde 2017. Linkedin

http://luisrodriguez.pe

Leave Your Comments