¿Te gustaría aprender Frameworks PHP Empresariales?
Tenemos los cursos que necesitas.¡Haz clic aquí!


El URL Helper de CodeIgniter

El Helper de URL es una de las librerías de funciones más fundamentales de CodeIgniter, que quizás utilicen todas las aplicaciones web que puedas construir con el framework, por muy sencillas que sean.

El URL Helper contiene una serie de funciones que nos servirán a trabajar con URLs en las aplicaciones web, para realizar acciones tan básicas como generar URLs completas de páginas de la aplicación web a partir de una ruta sencilla, la obtención de la URL base se nuestra aplicación, la URL actual, etc.

Controlador para probar el helper

Vamos a crear en este artículo un controlador que hace uso del helper URL, con un par de usos del mismo para construir enlaces y ver la URL principal de la aplicación web. Haremos un controlador bastante simple, para centrarnos más bien en el uso del helper.

Como cualquier controlador, debe extender la clase Controller.

class Probando_helper_url extends Controller {
//código del controlador
}

Cargar el helper desde el constructor del controlador

Cuando se hablaba de los helpers , tenemos que cargar explícitamente el Helper de URL para poder utilizarlo. Esto lo podemos hacer desde el archivo de configuración autoload.php, con lo que tendremos el helper cargado en cualquier lugar de la aplicación, o bien desde el controlador donde lo necesitemos. En este caso vamos a ver un controlador que carga el helper.

En el caso de cargar el helper desde el controlador, lo podemos hacer desde el constructor, para que esté accesible desde cualquier función, o desde una de las funciones del controlador. Veremos cómo cargarlo desde el constructor.

function __construct(){
parent::Controller();

//cargo el helper de url
$this->load->helper(‘url’);
}

Nota: Como se puede ver, el método de realización del constructor es de PHP 5. Recordar que en PHP 4 el constructor es una función con el mismo nombre que la clase y en PHP 5 el constructor es una función con el nombre __construct().

Dentro de los constructores de controladores se debe llamar primeramente al constructor de la clase padre (de la que heredamos), con parent::Controller().

Luego hacemos la carga del helper URL con la llamada al método helper() de la clase load que forma parte del controlador, indicando entre paréntesis el helper que deseamos cargar: ‘url’.

Uso el helper en las funciones de los controladores

Ahora que ya he cargado el helper en el constructor, en todo el código del controlador tendré disponibles, como globales, todas las funciones del helper URL. (También en las vistas que se carguen desde el controlador, aunque nosotros no vamos a hacer en este ejemplo ninguna vista)

Veamos entonces un ejemplo de función del controlador.

function index(){
//escribo desde el controlador, aunque debería hacerlo desde la vista
echo “<h1>Probando helper URL</h1>”;

//genero el enlace de este controlador, para la función creada muestra_base_url()
$enlace = site_url(“probando_helper_url/muestra_base_url”);
//escribo un enlace con esa función del controlador
echo ‘<a href=”‘ . $enlace . ‘”>Muestra la URL base</a>’;
}

Este es el método index() que es el que se invoca por defecto en el controlador si no se especifica ningún otro en la solicitud de URL. Podemos ver el uso de las funciones del helper de URL en la línea:

$enlace = site_url(“probando_helper_url/muestra_base_url”);

Con esta línea invocamos la función site_url() del helper URL, que sirve para obtener una URL del sitio a partir de una ruta parcial. Esta función es útil porque sirve para saber cómo es la URL completa con la que hay que enlazar distintas páginas del sitio, que podría variar dependiendo del lugar donde se haya instalado CodeIgniter, sólo a partir de un segmento que no puede cambiar. Dicho de otra manera, al enlazar con otras páginas del sitio conviene componer las URL siempre con la función site_url(), para que esos enlaces sigan funcionando aunque la aplicación la cambiemos a otro directorio, otro dominio, etc.

Nota: Un detalle que queremos señalar también sobre la función anterior, index(), es que hacemos uso de la sentencia echo de PHP para escribir cosas en la página directamente con el controlador. Esto no es recomendable, aunque se pueda hacer en CodeIgniter, pues la salida hacia la página desde nuestros scripts debería estar siempre en las vistas.

Ahora podemos ver un segundo método del controlador con otro uso de las funciones del helper URL.

function muestra_base_url(){
//escribo desde el controlador, aunque debería hacerlo desde la vista
echo base_url();

//un enlace para volver
echo ‘<p><a href=”‘ . site_url(‘probando_helper_url’) . ‘”>Volver</a></p>’;
}

Esa función escribe por pantalla lo que devuelve la función base_url(), que pertenece al helper de URL y sirve para informar de la ruta raíz de la aplicación CodeIgniter, que también dependerá del dominio donde estemos trabajando y el directorio donde se haya instalado el framework.

Luego también escribe un enlace para volver a la página anterior y para crear la ruta del enlace también utilizamos el helper de URL con la función site_url() relatada anteriormente, indicando en este caso tan solo el nombre del controlador al que queremos dirigir el enlace.

Código completo del controlador

Ahora veamos el código del controlador completo que hace uso del helper URL:

class Probando_helper_url extends Controller {

///////////////////////////////////////////////////////////////////////////
//Constructor
function __construct(){
parent::Controller();

//cargo el helper de url
$this->load->helper(‘url’);
}

///////////////////////////////////////////////////////////////////////////
//método index, función por defecto del controlador
function index(){
//escribo desde el controlador, aunque debería hacerlo desde la vista
echo “<h1>Probando helper URL</h1>”;

//genero el enlace de este controlador, para la función creada muestra_base_url()
$enlace = site_url(“probando_helper_url/muestra_base_url”);

//escribo un enlace con esa función del controlador
echo ‘<a href=”‘ . $enlace . ‘”>Muestra la URL base</a>’;
}

///////////////////////////////////////////////////////////////////////////
//funcion muestra_base_url, para mostrar la URL principal de esta aplicación web
function muestra_base_url(){
//escribo desde el controlador, aunque debería hacerlo desde la vista
echo base_url();

//un enlace para volver
echo ‘<p><a href=”‘ . site_url(‘probando_helper_url’) . ‘”>Volver</a></p>’;
}

///////////////////////////////////////////////////////////////////////////
//funcion muestra_url_actual, para mostrar la URL actual de esta página
function muestra_url_actual(){
//escribo desde el controlador, aunque debería hacerlo desde la vista
echo current_url();

//un enlace para volver
echo ‘<p><a href=”‘ . site_url(‘probando_helper_url’) . ‘”>Volver</a></p>’;
}
}

En este código hemos agregado al controlador un método llamado muestra_url_actual(), para probar la función del helper URL current_url(), que sirve para obtener la URL actual de la página que se está ejecutando.

Recordar que todo lo visto en este artículo sirve para entender el uso de los helpers en CodeIgniter, aunque nos hayamos saltado algunas recomendaciones del trabajo con el framework, como escribir contenido en la página directamente con el controlador y sin utilizar las vistas. Así mismo, es importante señalar que el helper URL tiene otras funciones también bastante útiles que seguramente nos vendrá bien conocer y que podemos revisar en la documentación del framework.

Te esperamos en los próximos artículos en donde hablaremos mas acerca de estos temas que hoy en día son de importancia e interés en el mundo de la tecnología.

¿Te gustaría aprender Frameworks PHP Empresariales?
Tenemos los cursos que necesitas.¡Haz clic aquí!
About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
guest
2 Comments
La mas nueva
Más antiguo Más votada
Comentarios.
Ver todos los comentarios
taylor
3 Años Texto atrás

Gracias por el libroBESOSMILbuy viagra

2
0
¿Te gusta este articulo? por favor comentax
()
x
Abrir chat
¿Quieres aprender a programar?
Hola 👋,
¿Te interesa información de nuestros cursos?