CodeIgniter - Conceptos básicos

Controladores

Un controlador es un archivo de clase simple. Como sugiere el nombre, controla toda la aplicación mediante URI.

Crear un controlador

Primero, ve a application/controllerscarpeta. Encontrarás dos archivos allí,index.html y Welcome.php. Estos archivos vienen con CodeIgniter.

Conserve estos archivos como están. Cree un nuevo archivo con la misma ruta denominada "Test.php”. Escriba el siguiente código en ese archivo:

<?php 
   class Test extends CI_Controller {
  
      public function index() { 
         echo "Hello World!"; 
      } 
   } 
?>

los Test class extiende una clase incorporada llamada CI_Controller. Esta clase debe ampliarse siempre que desee crear su propia clase de controlador.

Llamar a un controlador

El controlador anterior puede ser llamado por URI de la siguiente manera:

http://www.your-domain.com/index.php/test

Note la palabra "test”En el URI anterior después de index.php. Esto indica el nombre de clase del controlador. Como hemos dado el nombre del controlador "Test", Estamos escribiendo "test”Después de index.php. El nombre de la clase debe comenzar conuppercase letter pero necesitamos escribir lowercase lettercuando llamamos a ese controlador por URI. La sintaxis general para llamar al controlador es la siguiente:

http://www.your-domain.com/index.php/controller/method-name

Crear y llamar al método de constructor

Modifiquemos la clase anterior y creemos otro método llamado "hola".

<?php 
   class Test extends CI_Controller {  
	
      public function index() { 
         echo "This is default function."; 
      } 
  
      public function hello() { 
         echo "This is hello function."; 
      } 
   } 
?>

Podemos ejecutar el controlador anterior de las siguientes tres formas:

  • http://www.your-domain.com/index.php/test
  • http://www.your-domain.com/index.php/test/index
  • http://www.your-domain.com/index.php/test/hello

Después de visitar el primer URI en el navegador, obtenemos el resultado como se muestra en la imagen que se muestra a continuación. Como puede ver, obtuvimos el resultado del método "index”, Aunque no pasamos el nombre del método la URI. Hemos utilizado solo el nombre del controlador en el URI. En tales situaciones, CodeIgniter llama al método predeterminado "index”.

Al visitar el segundo URI en el navegador, obtenemos el mismo resultado que se muestra en la imagen de arriba. Aquí, hemos pasado el nombre del método después del nombre del controlador en el URI. Como el nombre del método es "index”, Estamos obteniendo el mismo resultado.

Al visitar el tercer URI en el navegador, obtenemos el resultado como se muestra en la imagen que se muestra a continuación. Como puede ver, estamos obteniendo el resultado del método "hello"Porque hemos pasado"hello"Como el nombre del método, después del nombre del controlador"test”En la URI.

Puntos para recordar

  • El nombre de la clase de controlador debe comenzar con una letra mayúscula.

  • El controlador debe llamarse con letra minúscula.

  • No use el mismo nombre del método que su clase principal, ya que anulará la funcionalidad de la clase principal.

Puntos de vista

Esta puede ser una página web simple o compleja, a la que puede llamar el controlador. La página web puede contener encabezado, pie de página, barra lateral, etc. No se puede llamar a la vista directamente. Creemos una vista simple. Cree un nuevo archivo enapplication/views con nombre "test.php”Y copie el código que se indica a continuación en ese archivo.

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

Cambiar el código de application/controllers/test.php archivo como se muestra a continuación.

Cargando la vista

La vista se puede cargar con la siguiente sintaxis:

$this->load->view('name');

Donde nombre es el archivo de vista que se está procesando. Si ha planeado almacenar el archivo de vista en algún directorio, puede usar la siguiente sintaxis:

$this->load->view('directory-name/name');

No es necesario especificar la extensión como php, a menos que se use algo diferente a .php.

El método index () llama al método view y pasa la "prueba" como argumento al método view () porque hemos almacenado la codificación html en "test.php"Archivo bajo application/views/test.php.

<?php 
   class Test extends CI_Controller { 
	
      public function index() { 
         $this->load->view('test'); 
      } 
   } 
?>

Aquí está la salida del código anterior:

El siguiente diagrama de flujo ilustra cómo funciona todo:

Modelos

Las clases de modelos están diseñadas para trabajar con información en la base de datos. Por ejemplo, si está utilizando CodeIgniter para administrar usuarios en su aplicación, entonces debe tener una clase de modelo, que contiene funciones para insertar, eliminar, actualizar y recuperar los datos de sus usuarios.

Crear clase de modelo

Las clases de modelo se almacenan en application/modelsdirectorio. El siguiente código muestra cómo crear una clase modelo en CodeIgniter.

<?php 
   Class Model_name extends CI_Model { 
	
      Public function __construct() { 
         parent::__construct(); 
      } 
   } 
?>

Donde Model_name es el nombre de la clase de modelo que desea dar. Cada clase de modelo debe heredar la clase CI_Model de CodeIgniter. La primera letra de la clase modelo debe estar en mayúscula. A continuación se muestra el código para la clase de modelo de los usuarios.

<?php 
   Class User_model extends CI_Model {
	
      Public function __construct() { 
         parent::__construct(); 
      } 
		
   } 
?>

La clase de modelo anterior debe guardarse como User_model.php. El nombre de la clase y el nombre del archivo deben ser iguales.

Modelo de carga

El modelo se puede llamar en el controlador. El siguiente código se puede utilizar para cargar cualquier modelo.

$this->load->model('model_name');

Donde model_name es el nombre del modelo que se cargará. Después de cargar el modelo, simplemente puede llamar a su método como se muestra a continuación.

$this->model_name->method();

Modelos de carga automática

Puede haber situaciones en las que desee alguna clase de modelo en toda su aplicación. En tales situaciones, es mejor si lo cargamos automáticamente.

/*
| ---------------------------------------------------------------
|  Auto-Load Models
| ---------------------------------------------------------------
| Prototype:
|
|   $autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|  
|   $autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array();

Como se muestra en la figura anterior, pase el nombre del modelo en la matriz que desea cargar automáticamente y se cargará automáticamente, mientras que el sistema está en estado de inicialización y es accesible en toda la aplicación.

Ayudantes

Como sugiere su nombre, le ayudará a construir su sistema. Se divide en pequeñas funciones para servir diferentes funcionalidades. Hay varios ayudantes disponibles en CodeIgniter, que se enumeran en la tabla siguiente. También podemos construir nuestros propios ayudantes.

Los ayudantes normalmente se almacenan en su system/helperso application/helpers directory. Los ayudantes personalizados se almacenan enapplication/helpers Los ayudantes de directorio y sistemas se almacenan en system/helpersdirectorio. CodeIgniter buscará primero en suapplication/helpers directory. Si el directorio no existe o no se encuentra el ayudante especificado, CodeIgniter buscará en su globalsystem/helpers/ directory. Cada asistente, ya sea personalizado o del sistema, debe cargarse antes de usarlo.

SN Nombre y descripción del ayudante
1

Array Helper

El archivo Array Helper contiene funciones que ayudan a trabajar con matrices.

2

CAPTCHA Helper

El archivo CAPTCHA Helper contiene funciones que ayudan a crear imágenes CAPTCHA.

3

Cookie Helper

El archivo Cookie Helper contiene funciones que ayudan a trabajar con cookies.

4

Date Helper

El archivo Asistente de fechas contiene funciones que le ayudan a trabajar con fechas.

5

Directory Helper

El archivo Directory Helper contiene funciones que ayudan a trabajar con directorios.

6

Download Helper

Download Helper le permite descargar datos a su escritorio.

7

Email Helper

El Asistente de correo electrónico proporciona algunas funciones de asistencia para trabajar con el correo electrónico. Para una solución de correo electrónico más sólida, consulte la Clase de correo electrónico de CodeIgniter.

8

File Helper

El archivo File Helper contiene funciones que ayudan a trabajar con archivos.

9

Form Helper

El archivo Form Helper contiene funciones que ayudan a trabajar con formularios.

10

HTML Helper

El archivo HTML Helper contiene funciones que ayudan a trabajar con HTML.

11

Inflector Helper

El archivo Inflector Helper contiene funciones que le permiten cambiar palabras a plural, singular, mayúsculas, etc.

12

Language Helper

El archivo Language Helper contiene funciones que ayudan a trabajar con archivos de idioma.

13

Number Helper

El archivo Number Helper contiene funciones que le ayudan a trabajar con datos numéricos.

14

Path Helper

El archivo Path Helper contiene funciones que le permiten trabajar con rutas de archivo en el servidor.

15

Security Helper

El archivo Security Helper contiene funciones relacionadas con la seguridad.

dieciséis

Smiley Helper

El archivo Smiley Helper contiene funciones que le permiten administrar emoticonos (emoticonos).

17

String Helper

El archivo String Helper contiene funciones que ayudan a trabajar con cadenas.

18

Text Helper

El archivo de ayuda de texto contiene funciones que ayudan a trabajar con texto.

19

Typography Helper

El archivo Typography Helper contiene funciones que ayudan a dar formato al texto de formas semánticamente relevantes.

20

URL Helper

El archivo URL Helper contiene funciones que ayudan a trabajar con URL.

21

XML Helper

El archivo XML Helper contiene funciones que ayudan a trabajar con datos XML.

Cargando un ayudante

Se puede cargar un ayudante como se muestra a continuación:

$this->load->helper('name');

Donde nombre es el nombre del ayudante. Por ejemplo, si desea cargar el Asistente de URL, puede cargarlo como:

$this->load->helper('url');

Enrutamiento

CodeIgniter tiene un sistema de enrutamiento URI fácil de usar, para que pueda redirigir fácilmente la URL. Por lo general, existe una relación de uno a uno entre una cadena de URL y su método / clase de controlador correspondiente. Los segmentos de una URI normalmente siguen este patrón:

your-domain.com/class/method/id/
  • los first segment representa la clase de controlador que debe invocarse.

  • los second segment representa la función o método de clase que se debe llamar.

  • los third, y cualquier segmento adicional, representan la ID y cualquier variable que se pasará al controlador.

En algunas situaciones, es posible que desee cambiar este mecanismo de enrutamiento predeterminado. CodeIgniter ofrece la posibilidad de establecer sus propias reglas de enrutamiento.

Personalizar reglas de enrutamiento

Hay un archivo en particular donde puede manejar todos estos. El archivo se encuentra en application / config / routes.php. Encontrará una matriz llamada $ route en la que puede personalizar sus reglas de enrutamiento. La clave en la matriz $ route decidirá qué enrutar y el valor decidirá dónde enrutar. Hay tres rutas reservadas en CodeIgniter.

SN Rutas reservadas y descripción
1

$route['default_controller']

Esta ruta indica qué clase de controlador debe cargarse, si el URI no contiene datos, que será el caso cuando las personas carguen su URL raíz. Se le anima a tener una ruta predeterminada; de lo contrario, aparecerá una página 404 de forma predeterminada. Podemos configurar la página de inicio del sitio web aquí para que se cargue de forma predeterminada.

2

$route['404_override']

Esta ruta indica qué clase de controlador debe cargarse si no se encuentra el controlador solicitado. Anulará la página de error 404 predeterminada. No afectará alshow_404() función, que continuará cargando el predeterminado error_404.php presentar en application/views/errors/error_404.php.

3

$route['translate_uri_dashes']

Como es evidente por el valor booleano, esta no es exactamente una ruta. Esta opción le permite reemplazar automáticamente los guiones ('-') con guiones bajos en los segmentos de URI del método y del controlador, lo que le permite ahorrar entradas de ruta adicionales si es necesario. Esto es necesario porque el guión no es una clase válida o un carácter de nombre de método y provocará un error fatal si intenta utilizarlo.

Las rutas se pueden personalizar mediante wildcards o usando regular expressions pero tenga en cuenta que estas reglas personalizadas para el enrutamiento deben ir después de las reglas reservadas.

Comodines

Podemos usar dos caracteres comodín como se explica a continuación:

  • (:num) - Coincidirá con un segmento que contenga solo números.

  • (:any) - Coincidirá con un segmento que contenga cualquier carácter.

Example

$route['product/:num']='catalog/product_lookup';

En el ejemplo anterior, si la palabra literal "producto" se encuentra en el primer segmento de la URL y se encuentra un número en el segundo segmento, se utilizan en su lugar la clase "catálogo" y el método "product_lookup".

Expresiones regulares

Al igual que los comodines, también podemos usar expresiones regulares en $route array keyparte. Si algún URI coincide con una expresión regular, se enrutará a la parte del valor establecida en la matriz $ route.

Example

$route['products/([a-z]+)/(\d+)']='$1/id_$2';

En el ejemplo anterior, un URI similar a products / shoes / 123 llamaría en su lugar al "shoes"Clase de controlador y el"id_123”Método.