CodeIgniter : ajouter une valeur dans un tableau de configuration
Dans cet article, nous expliquons en détail comment ajouter une valeur dans un tableau de configuration sous CodeIgniter (3 & 4), en s'appuyant sur des extraits de code, la logique MVC et des bonnes pratiques pour l'installation et la configuration de l'environnement.
Pourquoi modifier un tableau de configuration dans CodeIgniter ?
CodeIgniter est un framework PHP léger et performant qui suit le modèle MVC. Les tableaux de configuration permettent de centraliser des paramètres réutilisables (options d'application, connexions, clés API, routes personnalisées, etc.). Modifier ou ajouter des valeurs dans ces tableaux vous permet d'adapter facilement le comportement de l'application sans changer le code métier.
Où se trouvent les fichiers de configuration ?
Dans CodeIgniter 3 les fichiers de configuration se trouvent typiquement dans application/config/ (par exemple config.php, database.php, autoload.php). Dans CodeIgniter 4, les fichiers sont dans app/Config/ (par exemple App.php, Database.php, Cache.php).
Principe pour ajouter une valeur dans un tableau de configuration
Le principe général est :
- Ouvrir le fichier de configuration concerné (ex. application/config/autoload.php ou app/Config/YourConfig.php).
- Localiser le tableau à modifier (ex. $autoload['libraries'] = array(); ou public $libraries = [];).
- Ajouter l'élément souhaité en respectant la syntaxe PHP du tableau et les conventions de CodeIgniter (chaînes, clés associatives si nécessaire).
Exemples concrets
1) Ajouter une bibliothèque à l'autoload (CodeIgniter 3) :
Lire aussi: Modifier Activité Kbis Auto-Entrepreneur
Ouvrez application/config/autoload.php et remplacez :
$autoload['libraries'] = array();
Par :
$autoload['libraries'] = array('database');
De la même façon, pour les helpers :
Lire aussi: INPI et Micro-Entreprise : Démarches
$autoload['helper'] = array('url');
2) Ajouter une valeur personnalisée dans un fichier de config :
Si vous avez un fichier application/config/myconfig.php contenant un tableau :
$config['items'] = array('a','b');
Ajoutez une valeur :
Lire aussi: Comment Calculer la TVA ?
$config['items'][] = 'nouvelle_valeur';
Ou, pour une clé associative :
$config['options']['cle'] = 'valeur';
Cas pratique : insérer des données via un contrôleur et configurer l'autoload
Le flux suivant illustre le fonctionnement global MVC et la nécessité d'un paramétrage correct des tableaux de configuration pour charger automatiquement les bibliothèques nécessaires.
Nous aurons deux routes : l'une pour afficher une page et l'autre pour insérer des valeurs dans la base de données. Ici, notre contrôleur s'appelle Products et contient les fonctions product et add_products.
Extraits du contrôleur :
public function product() { return view('Products/add_product', $result); }
public function add_products() { $data = $this->request->getPost(); $result = $this->model->add_product($data); return redirect()->route('display_products'); }
public function display_products() { $result = $this->model->display_products(); return view('Products/display_product', $result); }
Note : La route 'add_products' doit être la même que l'attribut action du formulaire HTML.
Exemple de méthode de modèle pour insérer les données :
function add_product($data) { $insert = array( 'product_name' => $data['product_name'], 'description' => $data['product_description'], ); $query = $this->db->table('product'); $res = $query->insert($insert); }
Remarque : 'product_name' doit correspondre au nom de colonne en base, et la clé dans $data doit correspondre au name du champ de formulaire.
Bonnes pratiques pour les tableaux en PHP et CodeIgniter
- Utiliser toujours des guillemets autour d'un index littéral dans un tableau associatif : $array['clé'].
- Respecter la casse et la correspondance entre les clés de formulaire et les champs en base.
- Pour éviter les erreurs, vérifier si une variable existe avant de l'ajouter : if (!isset($config['items'])) $config['items'] = array();
- Lorsque $values peut être NULL, prévoyez une logique de repli (ex. $values = $values ?? array();).
- Ne pas oublier d'autoloader les bibliothèques indispensables (database, session, etc.) pour que les méthodes de modèle fonctionnent correctement.
Installer et configurer l'environnement (contexte pour tester)
Avant de tester vos modifications de configuration et vos routes, assurez-vous que CodeIgniter est installé et configuré :
- Installez CodeIgniter via Composer (recommandé pour CI4) ou décompressez la distribution.
- Configurez la connexion à la base de données dans app/Config/Database.php (ou application/config/database.php pour CI3).
- Si nécessaire, configurez le cache dans app/Config/Cache.php (Redis/Memcached).
- Sur un serveur local (ex. ServBay, LAMP, Hostinger), pointez la racine du site vers le dossier public de CodeIgniter.
- Retirez index.php des URLs en configurant $config['index_page'] = ''; et en ajoutant un .htaccess avec mod_rewrite activé.
Exemple complet de workflow pour ajouter une valeur de configuration et l'utiliser
- Ouvrez le fichier de configuration (ex. application/config/myconfig.php ou app/Config/MyConfig.php).
- Ajoutez ou initialisez le tableau si nécessaire : $config['my_items'] = array();
- Insérez la valeur voulue : $config['my_items'][] = 'nouvelle_valeur';
- Dans votre contrôleur, chargez la configuration : $this->config->load('myconfig'); $items = $this->config->item('my_items'); (CodeIgniter 3) ou config('MyConfig')->my_items (CI4 selon la structure).
- Utilisez $items pour vos logiques (affichage dans la vue, logique métier, etc.).
Remarques pratiques
- Si vous modifiez un fichier de config en production, pensez au cache d'opcode (opcache) et aux caches applicatifs qui pourraient garder des versions anciennes.
- Documentez les clés ajoutées pour faciliter la maintenance de l'équipe.
- Évitez d'écrire du code métier directement dans les fichiers de configuration : limitez-les à des valeurs statiques et des paramètres.
Cas d'erreurs fréquentes et leur résolution
- Erreur « clé non définie » : vérifier la correspondance des noms entre le formulaire, $this->request->getPost() et l'index du tableau utilisé.
- Erreur de base de données lors de l'insert : vérifier que la colonne existe et que la connexion à la base est chargée ($this->load->database() ou autoload).
- Modification d'un tableau de config qui ne s'applique pas : vider les caches applicatifs et vérifier opcache si activé.
- Routes non accessibles : vérifier la configuration du .htaccess et la suppression d'index.php dans config.php.
Table récapitulative : emplacements et méthodes d'ajout
| Contexte | Fichier | Méthode d'ajout |
|---|---|---|
| Autoload bibliothèques (CI3) | application/config/autoload.php | $autoload['libraries'] = array('database'); |
| Helper autoload (CI3) | application/config/autoload.php | $autoload['helper'] = array('url'); |
| Configuration personnalisée | application/config/myconfig.php ou app/Config/MyConfig.php | $config['items'][] = 'valeur'; ou public $items = ['valeur']; |
| Chargement en contrôleur | Contrôleur | $this->config->item('items') (CI3) ou config('MyConfig')->items (CI4) |
Ressources et conseils pour aller plus loin
- Utilisez les migrations pour créer les tables et tester les insertions (php spark make:migration sur CI4).
- Pour le développement local, ServBay facilite la création et la configuration d'un environnement (PHP, MySQL, Redis, etc.).
- Apprenez à séparer les configurations par environnement (dev/production) pour éviter les erreurs de déploiement.
- Tenez compte des différences entre CodeIgniter 3 et 4 pour la gestion des configurations et le chargement des services.
[3] Insert, Display, Modify and Delete in a MySQL Database with CodeIgniter
Avec ces informations, vous pouvez ajouter, lire et utiliser des valeurs dans des tableaux de configuration CodeIgniter, tout en respectant la structure MVC et les bonnes pratiques de développement.
balises:
