CodeControladores de Igniter, enrutamiento de vistas: aprenda con ejemplos

โšก Resumen inteligente

Este CodeEl ejemplo de Igniter crea una pequeรฑa aplicaciรณn para mostrar cรณmo funcionan juntos el enrutamiento, los controladores y las vistas. Se crea un nuevo proyecto con Composer y se define el mapa de rutas. URLs a mรฉtodos del controlador, y cada mรฉtodo carga una vista que devuelve HTML al navegador.

  • ๐Ÿงญ Enrutamiento: Las rutas coinciden con una URL a un mรฉtodo de controlador y uno no coincidente URL Genera un error de pรกgina no encontrada.
  • ๐ŸŽ›๏ธ Controladores: Un mรฉtodo de controlador responde a una ruta, solicita datos y devuelve una vista.
  • ๐Ÿ–ผ๏ธ Vistas: Una vista combina HTML, CSS y JavaScript para presentar el resultado al usuario.
  • ๐Ÿ“ฆ Configuraciรณn del proyecto: Composer crea el proyecto y el servidor PHP integrado lo ejecuta localmente.
  • ๐Ÿ  Ruta predeterminada: default_controller establece la pรกgina de inicio y 404_override establece una pรกgina de error personalizada.
  • โž• Ruta personalizada: Una ruta como about-us se corresponde con el mรฉtodo about_us del controlador Welcome.
  • ๐Ÿ” Flujo completo: URL para enrutar al controlador a la vista, y luego HTML de vuelta al navegador.

CodeControladores y vistas de Igniter

En este tutorial, aprenderรกs los siguientes temas:

  • enrutamiento โ€“ el enrutamiento es responsable de responder a URL solicitudes. El enrutamiento coincide con el URL a las rutas predefinidas. Si no se encuentra ninguna coincidencia de ruta, CodeIgniter genera una excepciรณn de pรกgina no encontrada.
  • Control โ€“ Las rutas estรกn vinculadas a los controladores. Los controladores unen los modelos y las vistas. Solicitan datos y lรณgica de negocio al modelo y devuelven los resultados en la presentaciรณn de la vista. Una vez que URL Una vez que se ha asociado una ruta, se envรญa a una funciรณn pรบblica del controlador. Esta funciรณn interactรบa con la fuente de datos y la lรณgica de negocio, y devuelve la vista que muestra los resultados.
  • Vistas โ€“ las vistas son responsables de la presentaciรณn. Una vista suele ser una combinaciรณn de HTML, CSS y JavaScript. Esta parte se encarga de mostrar la pรกgina web al usuario. Normalmente, los datos que se muestran se obtienen de la base de datos o de otra fuente de datos disponible.

Cรณmo crear un nuevo CodeProyecto Igniter

Usaremos Composer para crear un nuevo proyecto. Usaremos el servidor integrado de PHP, por lo que no es necesario tener software adicional como APACHEEn este tutorial, utilizamos el Windows sistema operativo, por lo que hemos creado una carpeta Sites en la unidad C. Puede usar cualquier directorio que le resulte conveniente.

Abre la lรญnea de comandos o la terminal y ejecuta el siguiente comando:

cd C:\Sites

Ahora crearemos un CodeProyecto Igniter usando Composer. Ejecute el siguiente comando:

composer create-project CodeIgniter/framework ci-app

Aquรญ:

  • El comando anterior crea un nuevo CodeProyecto Igniter versiรณn 3, utilizando la รบltima versiรณn estable (3.1.9 en el momento de escribir esto), en un directorio llamado ci-app.

Cuando el comando haya terminado de ejecutarse, deberรญa ver resultados similares a los siguientes en la terminal:

Compositor creando un nuevo CodeProyecto Igniter

Ejecute el siguiente comando para navegar al directorio del proyecto reciรฉn creado ci-app:

cd ci-app

Ahora inicia el servidor web integrado de PHP:

php -S localhost:3000

Aquรญ:

  • El comando anterior inicia el servidor PHP integrado que se ejecuta en el puerto 3000.

Abra el navegador web y navegue a lo siguiente URL: http://localhost:3000/Obtendrรกs la siguiente pรกgina:

CodePรกgina de bienvenida predeterminada de Igniter

Si puede ver la pรกgina de arriba, enhorabuena, ha instalado correctamente. CodeEncendedorLa pรกgina se genera mediante la vista ubicada en application/views/welcome_message.php, y el controlador responsable se encuentra en application/controllers/Welcome.php.

CodeEnrutamiento del encendedor

Por ahora, nuestra aplicaciรณn solo tiene una URL, que es la pรกgina de inicio. En esta secciรณn, personalizaremos la secciรณn de inicio y crearemos algunas nuevas URLque responden a diferentes solicitudes.

Comencemos con la ruta de la pรกgina de inicio. Abra el archivo de rutas en la siguiente ruta:

application/config/routes.php

Deberรญa ver el siguiente contenido:

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Aquรญ:

  • $route['default_controller'] = 'welcome'; define el controlador predeterminado que responde a las solicitudes URI.
  • $route['404_override'] = โ€; permite definir una ruta personalizada para errores 404. Un error 404 ocurre cuando no se encuentra una pรกgina. CodeIgniter tiene un manejador de errores predeterminado, pero puedes definir el tuyo propio si lo deseas.
  • $route['translate_uri_dashes'] = FALSE; permite traducir guiones a guiones bajos. Analizaremos esta opciรณn cuando veamos cรณmo funcionan las rutas en CodeEncendedor.

Veamos ahora el mรฉtodo del controlador responsable de mostrar la pรกgina de inicio que vimos cuando abrimos http://localhost:3000/Abra el siguiente archivo:

application/controllers/Welcome.php

Deberรญas ver el siguiente cรณdigo:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

public function index()
{
$this->load->view('welcome_message');
}
}

Aquรญ:

  • defined('BASEPATH') OR exit('No direct script access allowed'); protege contra el acceso directo a la clase del controlador sin pasar por el archivo index.php. En el paradigma MVC, todas las solicitudes tienen un รบnico punto de entrada, que para CodeIgniter es index.php. Este cรณdigo bloquea todas las solicitudes que no provengan de index.php.
  • La clase Welcome extiende CI_Controller {โ€ฆ} define una clase Welcome que extiende la clase padre CI_Controller.
  • La funciรณn pรบblica index() define una funciรณn pรบblica que se llama por defecto cuando se abre la pรกgina de inicio.
  • $this->load->view('welcome_message'); carga la vista welcome_message, ubicada en application/views/welcome_message.php.

Hasta ahora solo hemos explorado lo que viene de fรกbrica con CodeIgniter. Ahora vamos a hacer algunos cambios. Crearemos nuestra propia pรกgina de inicio y reemplazaremos la pรกgina predeterminada. Crea un nuevo archivo en application/views/home.php y agrega el siguiente cรณdigo:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello CodeIgniter!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">
CodeIgniter Hello World
</h1>
</div>
</section>
</body>
</html>

Aquรญ: El cรณdigo HTML anterior carga el framework CSS Bulma y Font Awesome desde una CDN y crea un documento HTML muy bรกsico. Aplica una regla CSS sencilla del framework Bulma.

Abra lo siguiente URL en tu navegador: http://localhost:3000/Deberรญas ver lo siguiente:

Personalizado CodePรกgina principal de Igniter

ยกGenial! Hemos modificado la pรกgina de inicio correctamente. Ahora, definamos nuestra ruta. Supongamos que nuestra aplicaciรณn tambiรฉn necesita mostrar una pรกgina "Acerca de nosotros".

Crear una ruta

Abra el archivo de rutas application/config/routes.php y agregue la siguiente ruta:

$route['about-us'] = 'welcome/about_us';

Aquรญ:

  • Cuando un visitante visita el URL /sobre nosotros, nosotros le damos instrucciones CodeIgniter buscarรก un controlador Welcome y ejecutarรก el mรฉtodo about_us.

Crear un controlador

Ahora vamos a definir el mรฉtodo del controlador about_us. Abra application/controllers/Welcome.php y aรฑada el siguiente mรฉtodo:

public function about_us(){
$this->load->view('about_us');
}

Aquรญ:

  • El cรณdigo anterior define una funciรณn llamada about_us y carga una vista llamada about_us.

Crear una vista

Ahora vamos a crear la vista a la que acabamos de hacer referencia. Crea un nuevo archivo llamado about_us.php en application/views/about_us.php y aรฑade el siguiente cรณdigo:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>About CodeIgniter!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">
About us yap...
</h1>
</div>
</section>
</body>
</html>

Estamos listos. Abra lo siguiente URL en su navegador web: http://localhost:3000/index.php/about-usVerรกs la siguiente pรกgina:

CodePรกgina "Acerca de nosotros" de Igniter

Si puede ver la pรกgina anterior, enhorabuena, ha creado con รฉxito una aplicaciรณn sencilla en CodeEncendedor.

Preguntas Frecuentes

Un mapa de entrada de ruta URL Segmentar a un controlador y mรฉtodo, como 'welcome/about_us'. Cuando eso URL se solicita, CodeIgniter ejecuta el mรฉtodo especificado, que carga y devuelve una vista.

Establece el controlador que maneja la raรญz del sitio cuando no hay ninguna especรญfica URL Se proporciona. En el ejemplo, 'bienvenido' significa que la pรกgina de inicio es servida por el mรฉtodo index del controlador Welcome.

No. El servidor PHP integrado, que se inicia con `php -S localhost:3000`, es suficiente para ejecutar el ejemplo localmente. Apache o Nginx solo son necesarios para un entorno de producciรณn.

Sรญ. A partir de la descripciรณn de una pรกgina, la IA puede escribir la entrada de ruta, el mรฉtodo del controlador y una vista correspondiente, mantener...ping nombres consistentes. Compruebe las rutas con respecto a su CodeVersiรณn Igniter.

Este ejemplo usa CodeIgniter 3, que almacena controladores y vistas en application/. CodeIgniter 4 reestructurรณ los directorios y los espacios de nombres, por lo que las rutas y la sintaxis difieren en los proyectos mรกs recientes.

Resumir este post con: