Codeignitor se basa en el patrón de diseño MVC. Veremos cómo funcionan el controlador, el modelo y la vista y mostraremos el resultado al usuario.
Controlador: como sugiere el nombre, controla la comunicación entre las vistas y los modelos. Toda la URL funciona en CodeIgniter con el nombre del controlador. Ahora veamos algunos puntos que debemos tener en cuenta cuando creamos un nuevo controlador.
- Cuando creamos una clase en un controlador, el nombre de la clase debe coincidir con el nombre del archivo y debe comenzar con mayúsculas, de lo contrario, recibiremos un error mientras ejecutamos nuestro proyecto.
- Una vez que se declara la clase, heredamos todas las propiedades de CI_Controller con palabras clave extendidas para usar todas las propiedades de CI_Controller (Revise PHP | Terminología común en programación orientada a objetos para comprender la herencia). No habrá ningún problema si no extendemos CI_Controller, pero en ese caso, no podremos acceder a ninguna propiedad de CI_Controller.
- Cada controlador tiene un índice de función predeterminado que se ejecuta automáticamente cuando definimos solo el nombre del controlador en la URL. Para el resto de las funciones, debemos mencionarlo manualmente después del nombre del controlador en la URL.
Modelo: El modelo es responsable de manejar las consultas relacionadas con el backend. Todas las consultas o funcionalidades del backend como base de datos, API las escribimos en modelos. Ahora veamos algunos puntos que debemos tener en cuenta cuando creamos un nuevo modelo.
- Cuando creamos una clase en un modelo, el nombre de la clase debe coincidir con el nombre del archivo y debe comenzar con mayúsculas; de lo contrario, recibiremos un error mientras ejecutamos nuestro proyecto.
- Una vez que se declara la clase, heredamos todas las propiedades de CI_Model con palabras clave extendidas para usar todas las propiedades de CI_Model
- Cuando creamos una función en el modelo, asegúrese de que sea pública, de lo contrario no será accesible en el controlador.
- Para acceder al modelo en un controlador, primero debe cargarse, después de cargar el modelo podemos llamar a la función de ese modelo específico en el controlador. A continuación se muestra la línea para cargar el modelo en un controlador.
$this->load->model('post_model');
A continuación se muestra la línea para cargar el modelo en autoload.php que está disponible en la carpeta de configuración. Si necesitamos el modelo globalmente en nuestro proyecto, use autoload.php.
$autoload['model'] = array('post_model');
Vista: la vista es parte de la presentación en el concepto MVC. Lo que sea que esté en el extremo del cliente, como HTML, CSS o JavaScript, se use en el archivo y se mostrará al usuario a través de la parte de vista. Los archivos de vista se guardan en la carpeta de aplicación/vista. Cuando el modelo obtiene datos del backend y los devuelve al controlador, el controlador pasa todos los datos en la página de visualización.
Teniendo en cuenta todo lo anterior, veremos un ejemplo de cómo funciona MVC en CI.
Ejemplo:
Archivo del controlador: cree un archivo users.php en la carpeta del controlador y escriba el código a continuación.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Users extends CI_Controller { public function __construct(){ parent::__construct(); //load model $this->load->model('usermodel'); } public function index() { //access the getUsers method from usermodel $data['users'] = $this->usermodel->getUsers(); $this->load->view('users_list', $data); } } ?>
Archivo modelo: Cree un archivo usermodel.php en la carpeta Modelo y escriba el código a continuación.
<?php class Usermodel extends CI_Model { public function getUsers() { // Here we can also run database queries and return the result return [ ['firstname'=>'First User', 'lastname'=>'First Name'], ['firstname'=>'Second User', 'lastname'=>'Second Name'], ['firstname'=>'Third User', 'lastname'=>'Third Name'], ] ; } } ?>
Ver archivo: cree un archivo users_list.php en la carpeta Ver y escriba el código a continuación.
<html lang="en"> <head> <title>User List</title> </head> <body> <table style="border: 1px solid;"> <?php foreach ($users as $row) { ?> <tr> <td style="border: 1px solid;"> <?php echo $row['firstname']; ?> </td> <td style="border: 1px solid;"> <?php echo $row['lastname']; ?> </td> </tr> <?php } ?> </table> </body> </html>
Ahora ejecute http://localhost/ci_tutorial/index.php/Users en el navegador.
Producción:
Publicación traducida automáticamente
Artículo escrito por anuupadhyay y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA