Pendant longtemps, je n'utilisais aucun framework pour le backend de mes applications Web. N'étant pas développeur Web de métier et n'ayant pas de gros besoins en termes de fonctionnalité. J'utilisais pour mon backend le langage PHP de manière native. A force de développer des petites applications Web avec des fonctionnalités simples (interaction avec une base de données, connexion, routes, etc...). Je me suis rendu compte que redévelopper des objets PHP de base me prenner souvent beaucoup de temps, même en faisant des copier/coller de code que j'avais déjà ecrit pour d'autres projets.
En discutant avec un développeur, j'ai découvert le framework Codeigniter 4. Depuis, j'ai utilisé ce framework pour plusieurs applications Web. Aussi bien pour des projets personnels que pour des projets professionnels. Dans cet article, je vais vous partager mon expérience avec ce framework PHP.
Léger et performant
L'un des gros point fort de Codeigniter 4 est sa légèreté. Le framework pèse 1.1 Mo (hors dépendances) ce qui est vraiment léger. A titre de comparaison le framework Symfony pèse un peu moins de 15 Mo (hors dépendances).
La légèreté de Codeigniter 4 est due au fait que le framework ne contient que le strict nécessaire. Le framework comporte les fonctionnalités de base que l'on peut retrouver dans une application web moderne. En voici quelques-unes :
- Gestion de bases de données
- Autoloader
- Système de log
- Debug
- Système de mise en cache
- Routage
- Réponse API
Pour découvrir plus de fonctionnalités du framework je voue renvoie vers sa documentation.
Le framework est très modulaire, car il ne charge pas toutes les bibliothèques. Seules les bibliothèques utilisées par votre application Web seront chargées. De plus, Codeigniter 4 utilise très bien les dernières optimisations de PHP 8, ce qui permet d'améliorer les temps de réponse.
Bien que Codeigniter 4 n'intègre que le minimum. Cela ne l'empêche pas d'être un framework sécurisé. Ce dernier intègre nativement des protections avancées contre les attaques CSRF et XSS.
Apprentissage simple
Comme je vous le disais en début d'article. Je ne suis pas développeur de métier, je maîtrise bien PHP, mais je suis très loin d'être expert sur le sujet.
C'est là que j'ai trouvé Codeigniter 4, extrêmement simples à utiliser. L'installation est très simple, comme beaucoup de framework PHP, Codeigniter 4 vous propose une installation via Composer ou manuellement en utilisant les sources. Je trouve la documentation bien faite et on s'y retrouve facilement, pour être honnête, j'ai quasiment toujours trouvé mes réponses dans la documentation.
Une fois le framework installé, on peut déjà commencer à construire notre application. La section "Build Your First Application" permet de découvrir rapidement les notions clé du framework. Notamment l'architecture Model-View-Controller (MVC), dont nous reparlerons plus tard dans l'article.
De plus, je trouve que Codeigniter 4 respecte plutôt bien la structure native de PHP. On peut utiliser PHP de manière native dans nos vues. Ce qui est moins dépaysant que certains moteurs de templates imposé par certains framework.
J'ai trouvé aussi la fonctionnalité de debugbar très pratique pour comprendre ce qui se passe dans notre application au fil de son développement. Je trouve que cela aide à la compréhension du framework. En plus de la debugbar, les pages en cas d'erreur son bien détailler. Codeigniter 4 nous indique tout de suite où se situe notre erreur et sa nature ce qui permet de remonter vite à la source de cette dernière.
Pour finir, Codeinigiter 4 peut être lancé sans avoir à configurer un serveur Apache ou Nginx. Il fournit un serveur de développement intégré en php (php spark) qui permet de lancer notre application en une seule commande après avoir installé le framework. Si l'on veut utiliser Apache ou Nginx la documentation nous donne des exemples de fichier de config ici.
Bien entendu, comme pour beaucoup de framework, il faut être alaise avec PHP et la programmation orientée objet.
Architecture MVC
Codeigniter 4 pousse l'utilisation de l'architecture Model-View-Controller, mais ne l'impose pas. Je vous recommande quand même de respecter cette architecture, car cela rendra votre code plus simple à maintenir. Beaucoup de framework backend utilise cette architecture qui consiste à avoir trois parties distinctes dans notre code.
- Modèle : Contient nos modèles de données, c'est dans cette partie que l'on va gérer les interactions avec notre base de données.
- Vue : Contient l'interface que voie l'utilisateur. Cette partie ne contient pas de logique, elle se contente d'afficher les données de nos variables.
- Contrôleur : Gère les requêtes des utilisateurs. Il fait le lien entre les modèles et les vues.
L'utilisation de cette architecture permet de garder une structure simple pour notre application.

Comme vous pouvez le voir, l'arborescence par défaut de Codeigniter 4 est plutôt simple.
Conclusion
Pour conclure cet article, il est temps de vous dire ce que j'apprécie avec Codeigniter, mais aussi les inconvénients que je lui trouve.
Avantages
Facile à installer : honnêtement sans compter l'installation de PHP et de mon serveur de base de données. J'avais la page par défaut du framework dans mon navigateur au bout de quelques minutes.
Documentation détaillé et claire : Je trouve que la documentation est bien segmentée et parlante. De plus, je trouve que les onglets sont organisé plus ou moins dans l'ordre d'avancement de notre application.
Léger et minimaliste : Je trouve que l'architecture de base n'est pas une usine à gaz avec plein de dossiers. Ce qui, quand l'on débute permet de facilement comprendre où écrire notre code.
Communauté : Quand la documentation de Codeigniter 4 ne suffit pas le forum est peuplé de posts qui permettent de résoudre vos problèmes. De plus, le projet est open source, ce qui facilite le développement de module complémentaire développer par la communauté si vous avez besoin.
Codeigniter 4 est super pour développer un blog, une API ou même des applications plus avancées.
Inconvénients
Trop permissif : Je trouve le framework est trop permissif, surtout quand on débute. Lorsque j'ai construit ma première application, je suis vite partie dans tous les sens sans trop respecter l'architecture MVC. Ce qui m'a posé problème par la suite, car le code devenait trop complexe à maintenir. Je vous recommande donc de bien respecter la structure MVC. Cela vous permettra d'avoir un code plus lisible, de mieux vous y retrouver et donc d'avoir une application simple à maintenir.
Manque de bibliothèque : En fonction de vos usages, Codeigniter peut vite manquer de bibliothèque, même si l'on peut toujours utiliser des bibliothèque faites par la communauté. Cependant, si vous avez des besoins spécifiques pour votre application, il est possible que vous soyez obligé de développer vous-même des modules qui sont par exemple intégré nativement dans des framework comme Symfony ou Laravel.