Tutorial de CodeIgniter
access_time
hourglass_empty
person_outline

Tutorial de CodeIgniter

¿Estás buscando un tutorial completo de CodeIgniter? Si es así, ¡este artículo es para ti! Te mostraremos cómo instalar, configurar y usar CodeIgniter para desarrollar una aplicación web PHP.

Además, aprenderás sobre MVC (Modelo-Vista-Controlador) y su importancia en el desarrollo web moderno.

¿Qué es CodeIgniter?

CodeIgniter es un framework web de código abierto para PHP. Proporciona muchas librerías y paquetes, por lo que no tendrás que crear aplicaciones y páginas web desde cero.

Este framework de PHP también añade capas de lógica a tus aplicaciones web. Gracias a su arquitectura MVC (Modelo-Vista-Controlador), puedes crear un diseño más limpio y poner en paralelo ciertos procesos en el ciclo de desarrollo. Hablaremos más sobre esto más adelante.

Para instalar CodeIgniter, necesitas tener acceso SSH a tu hosting compartido o VPS. Puedes usar PuTTY (Windows) o el shell integrado en la terminal (Linux y macOS).

Sin más preámbulos, comencemos este tutorial de CodeIgniter.

En caso de que necesites un lugar confiable y económico para alojar tu fantástica aplicación CodeIgniter, ¡echa un vistazo a nuestro plan de alojamiento compartido y VPS!

VPS Hosting de Hostinger

Cómo Instalar CodeIgniter

La instalación de CodeIgniter requiere un entorno LAMP.

Este stack de aplicaciones ya se encuentra disponible en el alojamiento compartido de Hostinger. Sin embargo, si estás usando VPS, tal vez quieras aprender a instalar LAMP en Ubuntu o en CentOS.

Una vez que todo esté listo, puedes seguir estos pasos:

  1. Conéctate a tu cuenta de alojamiento a través de SSH. Luego, navega a la carpeta public_html tipeando:
    cd /public_html
  2. Descarga la última distribución de CodeIgniter con este comando:
    wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.11.zip

    En este tutorial de CodeIgniter, la última versión estable es la 3.1.11. Puedes visitar la página oficial para ver si ha salido una versión más reciente.

  3. Si estás utilizando el alojamiento compartido de Hostinger, puedes descomprimir directamente el archivo CodeIgniter introduciendo el siguiente comando:
    unzip 3.1.11.zip

    Desafortunadamente, zip podría no estar preinstalado en el VPS. Por lo tanto, deberías instalarlo antes de ejecutar el comando anterior:

    sudo apt-get install zip
  4. Verás un directorio llamado CodeIgniter-3.1.11. Te recomendamos que cambies el nombre de esta carpeta para mayor comodidad:
    mv /var/www/CodeIgniter-3.1.11 /var/www/codeigniter
  5. Abre tu navegador e introduce el path de dicha carpeta:
    https://tudominio.com/codeigniter

    Deberías ver la pantalla de bienvenida predeterminada de CodeIgniter, lo que significa que el framework se ha instalado correctamente en tu sistema.

Cómo Configurar CodeIgniter

En esta parte del tutorial de CodeIgniter, aprenderás a configurar el framework en un alojamiento compartido y en un VPS. Para los usuarios de este último, también explicaremos cómo crear un host virtual para este framework de PHP.

Lo primero es crear una nueva base de datos MySQL:

  1. En el hPanel de Hostinger, vaya a la sección Bases de datos y seleccione Bases de datos MySQL. Introduce el nombre de la base de datos y el nombre de usuario y luego haz clic en Crear.
    Menú MySQL del hPanel de Hostinger para crear una base de datos MySQL
  2. Ingresa a tu cuenta de alojamiento vía SSH y abre el archivo database.php en la distribución de CodeIgniter:
    nano /codeigniter/application/config/database.php
  3. Encuentra la siguiente sección del archivo y reemplaza los detalles con la información de la base de datos que acabas de crear (nombre de usuario, contraseña, base de datos). El resto de los valores deben ser similares a este ejemplo:
    $db['default']['hostname'] = 'mysql.hostinger.com';
    $db['default']['username'] = 'u499474900_user';
    $db['default']['password'] = 'password';
    $db['default']['database'] = 'u499474900_database';
    $db['default']['dbdriver'] = 'mysql';
    $db['default']['dbprefix'] = '';
    $db['default']['pconnect'] = TRUE;
    $db['default']['db_debug'] = TRUE;
    $db['default']['cache_on'] = FALSE;
    $db['default']['cachedir'] = '';
    $db['default']['char_set'] = 'utf8';
    $db['default']['dbcollat'] = 'utf8_general_ci';
    $db['default']['swap_pre'] = '';
    $db['default']['autoinit'] = TRUE;
    $db['default']['stricton'] = FALSE;

    Guarda el archivo presionando CTRL + X e introduce Y para confirmar los cambios.

  4. Configura tu nombre de dominio modificando el archivo config.php de CodeIgniter. Simplemente ingresa este comando:
    nano codeigniter/application/config.php

     

  5. Encuentra la siguiente línea:
    $config[‘base_url’] = ‘http://yourdomain.com’;

    Cambia el valor a tu nombre de dominio real. A continuación, guarda el archivo pulsando CTRL + X y luego Y.

¡Ahora ya has sincronizado correctamente tu base de datos con CodeIgniter!

Configurando Hosts Virtuales en VPS

Omite esta parte si estás instalando CodeIgniter en el alojamiento compartido de Hostinger.

Los usuarios de VPS tienen la opción de ejecutar múltiples aplicaciones de CodeIgniter en un único nombre de dominio. Para ello, necesitamos configurar hosts virtuales y cambiar las configuraciones de CodeIgniter.

  1. Asegúrate de que la raíz del documento esté sincronizada con el directorio de instalación de CodeIgniter. Puedes hacerlo abriendo el archivo virtual host:
    sudo nano /etc/apache2/sites-enabled/000-default
  2. Busca el siguiente bloque:
    <VirtualHost *:80>
    DocumentRoot /path/to/codeigniter
    [.......]
    <VirtualHost *:80>
  3. Cambia /path/to/codeigniter con el path real de tu directorio de instalación de CodeIgniter. Al hacer esto, todas tus URLs apuntarán a esta carpeta. Guarda los cambios presionando CTRL + X y Y.

¡Felicidades, has creado con éxito un nuevo host virtual! Ahora, para un proceso de desarrollo más eficiente, necesitamos deshacernos del index.php en el formato de la URL de CodeIgniter.

  1. Abre el archivo config.php:
    nano codeigniter/application/config/config.php

    Reemplaza la siguiente línea:

    $config['index_page'] = 'index.php';

    Con esto:

    $config['index_page'] = '';
  2. Para asegurarte de que no recibas ningún error, tienes que redirigir las futuras solicitudes modificando el archivo .htaccess. Pero primero, tienes que comprobar si mod_rewrite está activado:
    apache2ctl -M

    El comando de arriba mostrará las capacidades del servidor. Si encuentras mod_rewrite en la lista, continúa con el próximo paso. Si no, ejecuta esta línea:

    a2enmod rewrite

    Luego, reinicia Apache:

    sudo service apache2 restart
  3. Crea un archivo .htaccess en la carpeta raíz de CodeIgniter:
    nano codeigniter/.htaccess
  4. Pega las siguientes líneas al archivo. Guarda y sale.
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* index.php?/$0 [PT,L]
  5. Hazle saber a Apache que debe buscar el archivo .htaccess recién creado. Para conseguirlo, abre de nuevo el archivo virtual host:
    sudo nano /etc/apache2/sites-enabled/000-default

    Asegúrate de que AllowOverride esté configurado en All, como se muestra a continuación:

    <Directory> 
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
    </Directory>

    Una vez confirmado, guarda el archivo.

Si se realiza correctamente, no volverás a ver el molesto index.php y tu URL se verá más limpia.

Comprendiendo MVC

Antes de continuar con nuestro tutorial de CodeIgniter y aprender a desarrollar una aplicación con el framework, debes tener una comprensión básica de MVC y sus conceptos.

En pocas palabras, MVC es un paradigma de arquitectura de desarrollo web. Este recomienda que la lógica de negocio en cualquier aplicación se separe de la presentación.

MVC divide una aplicación en tres partes funcionales:

  • Modelos — se ocupa de tu base de datos, realiza cálculos y más. En resumen, es donde se encuentra tu lógica de negocio.
  • Vistas — forma la capa de presentación de la aplicación, donde los datos de tus modelos son incrustados.
  • Controladores — se utilizan para conectar los modelos y las vistas. Un controlador dirigirá las solicitudes de los usuarios al modelo apropiado. Después de eso, una vez que el modelo haya terminado su trabajo, el controlador cargará la vista pertinente.

Este patrón arquitectónico también brinda a los desarrolladores la flexibilidad de reutilizar el código para múltiples vistas. Por ejemplo, puedes aplicar la misma barra de navegación en todas las páginas web de tu aplicación.

Además, como las vistas y los modelos están completamente separados, los desarrolladores front-end pueden trabajar en paralelo con el equipo back-end para acelerar el proceso de desarrollo.

Nota que CodeIgniter también adhiere a la Programación Orientada a Objetos (POO). Como tal, los modelos y controladores son clases PHP que extienden las clases base proporcionadas por el framework.

Las vistas también son nombradas como archivos PHP, pero la mayor parte de su contenido es HTML/CSS. Sólo hay unos pocos fragmentos de código PHP, que se utilizan para mostrar los datos desde los modelos.

Conceptos básicos de enrutamiento

Así es como CodeIgniter da formato a sus cadenas de caracteres en la URL:

<base_url>/index.php/<controller_name>/<controller_function>/<function_parameter_1>/>/<function_parameter_2>…

En la sección anterior, te mostramos cómo eliminar el archivo index.php del formato. Por lo tanto, tu URL debería ser similar a este ejemplo:

http://www.tudominio.com/welcome/tester/1

Aquí, welcome es una clase de controlador que corresponde a un archivo de controlador llamado welcome.php. Esta clase llamará a la función tester(), y pasará ‘1’ como parámetro. Se pueden proporcionar más parámetros de forma similar, separados por barras.

Como puedes ver, el enrutamiento no supone ningún esfuerzo en CodeIgniter. Puedes experimentar y crear un enrutamiento más complejo.

Librerías

CodeIgniter te invita a reutilizar las librerías existentes y las funciones auxiliares para realizar tareas comunes.

El framework también te permite decidir qué librería cargar y cuándo hacerlo. Este proceso on-demand da como resultado aplicaciones rápidas, ligeras y ricas en funcionalidades.

Cargar una librería es fácil en CodeIgniter. Por ejemplo, para cargar la librería de la base de datos, simplemente pasa la siguiente línea en tu modelo o controlador:

$this->load->database();

Sin embargo, te sugerimos que cargues automáticamente las librerías comunes y los helpers al iniciar la aplicación, para que estén listos cuando las necesites. Los ejemplos incluyen Librería de Base de datos y función auxiliar de URL.

Sigue estos pasos para cargar automáticamente las librerías y los helpers:

  1. Abre el archivo de carga automática:
    nano application/config/autoload.php
  2. Cambia el valor de autoload:
    • Para cargar automáticamente la librería de la base de datos, reemplaza la siguiente línea:
      $autoload['libraries'] = array();

      Con esto:

      $autoload['libraries'] = array('database');
    • Para cargar automáticamente helpers URL, reemplaza la siguiente línea:
      $autoload['helper'] = array();

      Con esto:

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

      Puedes cargar automáticamente librerías adicionales usando el método array() y separarlas con comas.

  3. Presiona CTRL + X para guardar el archivo y Y para confirmar los cambios.

Crea una Aplicación Simple con CodeIgniter

En este punto de nuestro tutorial de CodeIgniter, deberías tener una distribución de CodeIgniter en marcha. También deberías saber cómo funcionan los modelos, vistas y controladores. Ahora vamos a usar la información para crear una aplicación web de CodeIgniter sencilla.

La aplicación es bastante simple. Usaremos nuestro modelo para obtener puntuaciones de reseñas de películas de nuestra base de datos y las mostraremos una a una usando nuestra vista. El controlador se utilizará para direccionar solicitudes entre el modelo y la vista.

Una vez que hayas dominado el proceso fundamental, podrás empezar a construir aplicaciones web más completas.

Paso 1: Creando una tabla con phpMyAdmin

Aquí están los pasos para crear una tabla con phpMyAdmin. Esta tabla es esencial porque conforma la base de nuestra aplicación.

  1. Ingresa a tu cuenta. Navega a la sección Bases de datos y selecciona phpMyAdmin.
  2. Busca la base de datos que has sincronizado con CodeIgniter y haz clic en Entrar phpMyAdmin.
    Menú phpMyAdmin en el hPanel para crear una tabla para CodeIgniter
  3. En el menú Crear tabla, introduce el nombre de la tabla y el número de columnas. Para nuestro tutorial de CodeIgniter, la llamaremos reviews y usaremos tres columnas. Después, selecciona Continuar.
    Interfaz de menú phpMyAdmin
  4. Las tres columnas son id, título y puntuación. Rellena otros campos como en el ejemplo de abajo y selecciona Guardar.
    Detalles de la tabla phpMyAdmin

Paso 2: Creando el Modelo

Una vez que la tabla de la base de datos esté lista, podemos empezar a trabajar en nuestra lógica de negocios. Para ello, crearemos un modelo, que obtendrá los valores de la base de datos.

  1. Accede a tu cuenta vía SSH.
  2. Los modelos se ubican en codeigniter/applications/models, por lo que no se mezclan con la estructura de directorios de tu aplicación. Por lo tanto, tienes que ir a esa ubicación y crear un nuevo archivo PHP llamado Reviews_model.php:
    cd codeigniter/applications/models
    nano Reviews_model.php

    Pega el siguiente código en el archivo Reviews_model.php:

    <?php
    class News_model extends CI_Model {
    }
    ?>
    

    Como puedes ver, tu clase de modelo (News_model) extiende la clase genérica Cl_Model que proporciona CodeIgniter. Ten en cuenta que CodeIgniter requiere que todos los nombres de clase comiencen con una letra mayúscula.

  1. Necesitamos cargar la librería de la base de datos que nos ayudará a trabajar con las bases de datos. Puedes usar el método constructor de modelo, que cargará la librería desde el principio. Para ello, pega el siguiente código en la parte inferior del archivo Reviews_model.php (debajo de la clase que se muestra en el paso 3):
    public function __construct() {
    $this->load->database();
    }

    La librería de la Base de datos es ahora visible para todos los métodos dentro de la clase.

  1. Crea otro método que use la  librería de la Base de datos para consultar la base de datos:
    public function get_reviews($id) {
    if($id != FALSE) {
    $query = $this->db->get_where('Reviews', array('id' => $id));
    return $query->row_array();
    }
    else {
    return FALSE;
    }
    }

    El código anterior tomará ID como argumento y devolverá toda la información en las columnas asociadas a ese ID. En otras palabras, este método será llamado cada vez que solicitemos una reseña de película.

  1. Guarda el archivo presionando CTRL + X y Y.

Paso 3: Creando el Controlador

Ya nos hemos ocupado de nuestra capa de recuperación de datos. A continuación, nuestro tutorial de CodeIgniter te mostrará cómo crear una ruta usando el controlador. De esta manera, cuando un usuario solicita una reseña de película, nuestra vista recibe la información del modelo.

  1. Para crear un nuevo controlador, ve al directorio application/controllers y crea un archivo llamado Reviews.php:
    cd codeigniter/application/controller
    nano Reviews.php

    Recuerda, los controladores de CodeIgniter requieren que el archivo tenga el mismo nombre que la clase dentro de él.

  1. Pega el siguiente código al archivo:
    <?php
    class Reviews extends CI_Controller {
    }
    ?>
  1. Agrupa los datos recuperados del modelo y pásalos a la vista. Para conseguir esto, crearemos un método llamado show(). Éste vincula los datos a la estructura recién creada y carga la vista. El código se ve así:
    public function show($id) {
    $this->load->model('Reviews_model');
    $reviews = $this->RFrevieweviews_model->get_reviews($id);
    $data['title'] = $reviews['title'];
    $data['grade'] = $reviews['grade'];
    $this->load->view('Movie_review', $data);
    }

    El arreglo $data es un arreglo asociativo. Las claves — title y grade — corresponden a los valores obtenidos de la base de datos. Este arreglo se pasa a movie_review, y la vista se carga a continuación.

Paso 4: Creando la Vista

Finalmente, tenemos que crear una vista que muestre las reseñas de películas solicitadas.

  1. Entra en la carpeta application/views y crea un nuevo archivo denominado Movie_review.php:
    cd codeigniter/application/views
    
    nano Movie_reviews.php

    Recuerda que el nombre del archivo tiene que corresponder a la vista que le dijiste al controlador que cargue (última línea del método show()).

  2. Pega el siguiente código y guarda el archivo:
    <?php
    print $title;
    print $grade;
    ?>

La vista mostrará la información pasada por el controlador en el arreglo $data. Los resultados no serán muy bonitos, ya que no hemos añadido estilo a nuestra vista. Sin embargo, puedes agregar un estilo inline o enlazar una hoja de estilo CSS en la vista más adelante.

Nuestra aplicación de muestra está completa. Deberías poder ejecutar esta aplicación introduciendo la siguiente URL en tu navegador:

http://tudominio.com/reviews/show/1

La aplicación web llamará al controlador de reseñas que creamos en el Paso 3, así como al método show() con un parámetro de entrada 1.

Este parámetro se utiliza para obtener información de la base de datos sobre una película con un ID de 1. Por tanto, deberías ver el título y la puntuación de la primera película en la base de datos.

Conclusión

CodeIgniter es un framework sólido para desarrolladores de PHP. Con su arquitectura MVC, puedes crear una aplicación web ligera y rica en funciones de forma más eficiente. Además, también proporciona una amplia variedad de librerías que te ayudarán a desarrollar tu producto más rápidamente.

En este tutorial de CodeIgniter, has aprendido los aspectos fundamentales de este framework y por qué es una herramienta esencial para el desarrollo web moderno. También te hemos mostrado cómo funciona MVC y cómo puedes crear una aplicación sencilla con CodeIgniter.

Ahora, ¡es momento de que tú lo pruebes y buena suerte!

El Autor

Author

Betania V. / @betania

Betania es una redactora y creadora de contenidos apasionada por el marketing digital. Se dedica a la realización de traducciones al español dentro del equipo de SEO en Hostinger. En sus ratos libres, disfruta de bailar, cantar o mirar una película.

Tutoriales relacionados

Agregá un comentario

Comentario*

Nombre*

Email*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

¡Formá parte de Hostinger ahora!