J'ai eu un problème en appelant un contrôleur à partir d'un autre contrôleur, l'un des utilisateurs de stackoverflow a suggéré d'utiliser require_once mais une autre personne a dit que ce n'est pas une bonne idée maintenant je suis confus, lequel est sûr ? Utiliser require_once ou écrire une fonction dans l'aide ?
Réponses
Trop de publicités?Je dirais en général que l'appel d'un contrôleur depuis un autre contrôleur n'est pas une meilleure pratique. Si deux contrôleurs ont besoin d'utiliser la même logique, alors peut-être que cette logique devrait être dans un endroit séparé. Cela peut être fait en créant votre propre bibliothèque et en la chargeant dans les deux contrôleurs.
Consultez le lien ci-dessous pour en savoir plus sur la création de bibliothèques dans CodeIgniter.
Il ne s'agit pas tant d'une question de "sécurité" mais plutôt d'une question de "convention" dans la façon dont les choses sont faites dans le framework CodeIgniter (CI). L'"idée" derrière un contrôleur dans CI est qu'à chaque demande de serveur, un seul contrôleur est créé.
La raison pour laquelle l'utilisation de require
pour charger un autre contrôleur pourrait ne pas être "sûre" est que vous pourriez introduire des bugs qui sont très difficiles à traquer. Il existe une manière plus sûre de répondre à vos besoins.
Dans une situation où du code serait utile dans plus d'un contrôleur, la meilleure réponse est probablement de créer une bibliothèque personnalisée qui peut être chargée et utilisée au besoin. Un Helper pourrait également être la réponse. À mon avis, les bibliothèques (classes) sont la manière OOP et sont préférées.
La documentation de CI sur la création de bibliothèques décrit comment implémenter des classes personnalisées qui sont facilement utilisées dans plusieurs contrôleurs.