diciembre 15, 2020
9min de lectura
Betania V.
¿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.
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!
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:
cd /public_html
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.
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
mv /var/www/CodeIgniter-3.1.11 /var/www/codeigniter
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.
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:
nano /codeigniter/application/config/database.php
$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.
nano codeigniter/application/config.php
$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!
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.
sudo nano /etc/apache2/sites-enabled/000-default
<VirtualHost *:80> DocumentRoot /path/to/codeigniter [.......] <VirtualHost *:80>
¡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.
nano codeigniter/application/config/config.php
Reemplaza la siguiente línea:
$config['index_page'] = 'index.php';
Con esto:
$config['index_page'] = '';
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
nano codeigniter/.htaccess
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php?/$0 [PT,L]
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.
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:
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.
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.
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:
nano application/config/autoload.php
$autoload['libraries'] = array();
Con esto:
$autoload['libraries'] = array('database');
$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.
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.
Aquí están los pasos para crear una tabla con phpMyAdmin. Esta tabla es esencial porque conforma la base de nuestra aplicación.
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.
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.
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.
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.
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.
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.
<?php class Reviews extends CI_Controller { } ?>
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.
Finalmente, tenemos que crear una vista que muestre las reseñas de películas solicitadas.
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()).
<?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.
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!
Deja una respuesta