<?php

namespace App\Controllers;

use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;

/**
 * Contrôleur de base dont héritent tous les contrôleurs de l'application.
 * Permet de charger les composants communs (helpers, librairies, modèles).
 */
abstract class BaseController extends Controller
{
    /**
     * Instance de la requête principale.
     *
     * @var CLIRequest|IncomingRequest
     */
    protected $request;

    /**
     * Liste des helpers chargés automatiquement pour tous les contrôleurs.
     *
     * @var list<string>
     */
    protected $helpers = [];

    /**
     * Initialise le contrôleur (requête, réponse, logger).
     *
     * @return void
     */
    public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
    {
        parent::initController($request, $response, $logger);
    }
}
