¿CodeIgniter 4 Controllers – Cómo crearlos?

CodeIgniter 4 Controllers

En este artículo veremos codeigniter 4 controllers, como crearlos y su funcionamiento, en la versión 4 de este framework php, si buscas un tutorial desde cero lee siguiente post

¿Cómo funcionan los controladores en codeigniter 4?

Primero tenemos la estructura básica de un controlador.


        class Users extends BaseController
        {
        public function index()
        {       

        $data['tittle'] = 'Users';     

        return view('admin/index',$data);
        }

        }
        

Los controladores están ubicados en nameProject / app / Controllers , cada controlador se extiende desde el controlador principal llamado BaseController , que está en la misma ruta, ese es el funcionamiento general de los controllers en codeigniter 4.



        class Users extends BaseController

        

¿Qué es el BaseController?

Aquí tenemos el BaseController que se extiende desde Controller, que es la clase principal del marco, a través de la función initController podemos cargar automáticamente servicios, bibliotecas, modelos, etc.


        namespace App\Controllers;

        /**
        * Class BaseController
        *
        * BaseController provides a convenient place for loading components
        * and performing functions that are needed by all your controllers.
        * Extend this class in any new controllers:
        *     class Home extends BaseController
        *
        * For security be sure to declare any new methods as protected or private.
        *
        * @package CodeIgniter
        */

        use CodeIgniter\Controller;

        class BaseController extends Controller
        {

        /**
        * An array of helpers to be loaded automatically upon
        * class instantiation. These helpers will be available
        * to all other controllers that extend BaseController.
        *
        * @var array
        */
        protected $helpers = [];

        /**
        * Constructor.
        */
        public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
        {
        // Do Not Edit This Line
        parent::initController($request, $response, $logger);

        //--------------------------------------------------------------------
        // Preload any models, libraries, etc, here.
        //--------------------------------------------------------------------
        // E.g.:
        // $this->session = \Config\Services::session();
        }

        }
        

Dentro tenemos una variable $data que podemos pasar a una vista.


        public function index()
        

Ahora tenemos el método index, que es el primer método que se ejecuta al cargar la clase, a menos que carguemos el constructor.


        $data['tittle'] = 'Users';
        

Finalmente devolvemos una vista, donde el primer parámetro es la ruta de la vista y que acepta como segundo parámetro la $data


        return view('admin/index',$data);