{"id":575294,"date":"2025-06-18T15:18:17","date_gmt":"2025-06-18T14:18:17","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=blog&#038;p=575294"},"modified":"2025-06-18T15:19:13","modified_gmt":"2025-06-18T14:19:13","slug":"comment-phpstorm-aide-a-maintenir-des-projets-php-open-source-interviews-et-exemples-concrets","status":"publish","type":"blog","link":"https:\/\/blog.jetbrains.com\/fr\/blog\/2025\/06\/18\/comment-phpstorm-aide-a-maintenir-des-projets-php-open-source-interviews-et-exemples-concrets\/","title":{"rendered":"Comment PhpStorm aide \u00e0 maintenir des projets PHP open source\u00a0: interviews et exemples concrets"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2559\" height=\"1439\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/06\/PS-social-BlogFeatured-1280x720-2x-4.png\" alt=\"\" class=\"wp-image-576406\"\/><\/figure>\n\n\n\n<p>L&#8217;\u00e9cosyst\u00e8me PHP est anim\u00e9 par des d\u00e9veloppeurs passionn\u00e9s qui cr\u00e9ent des outils largement utilis\u00e9s pour tous les domaines, des syst\u00e8mes de gestion de contenu aux biblioth\u00e8ques de tests, en passant par les couches de base de donn\u00e9es. Derri\u00e8re chaque projet se trouve une \u00e9quipe d\u00e9di\u00e9e qui travaille \u00e0 la modernisation du code, \u00e0 l&#8217;am\u00e9lioration des performances et \u00e0 l&#8217;\u00e9volution de l&#8217;\u00e9cosyst\u00e8me.<\/p>\n\n\n\n<p>Le fait que beaucoup de ces \u00e9quipes choisissent de travailler avec <a href=\"https:\/\/www.jetbrains.com\/fr-fr\/phpstorm\/\" target=\"_blank\" rel=\"noopener\">PhpStorm<\/a> est une source de fiert\u00e9 pour nous tous chez JetBrains et atteste de l&#8217;impact positif de notre <a href=\"https:\/\/www.jetbrains.com\/fr-fr\/phpstorm\/buy\/?section=discounts&amp;billing=yearly\" target=\"_blank\" rel=\"noopener\">programme de licences gratuites et \u00e0 prix r\u00e9duit destin\u00e9 aux contributeurs open source<\/a> sur la communaut\u00e9 PHP. Cet article a pour objectif de mettre en lumi\u00e8re plusieurs des projets PHP les plus remarquables et les personnes qui y contribuent. Qu&#8217;il s&#8217;agisse de d\u00e9boguer des syst\u00e8mes complexes ou de maintenir des suites de tests, PhpStorm permet de simplifier les workflows, de r\u00e9duire les frictions et de lib\u00e9rer du temps pour ce qui compte le plus&nbsp;: la cr\u00e9ation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PHPUnit<\/h2>\n\n\n\n<p><a href=\"https:\/\/sebastian-bergmann.de\/index.html\" target=\"_blank\" rel=\"noopener\">Sebastian Bergmann<\/a> a lanc\u00e9 <a href=\"https:\/\/github.com\/sebastianbergmann\/phpunit\/\" target=\"_blank\" rel=\"noopener\">PHPUnit<\/a> en tant que projet universitaire, \u00e0 la suite d&#8217;une discussion avec un professeur qui pensait qu&#8217;un outil comme JUnit ne pouvait pas \u00eatre impl\u00e9ment\u00e9 pour PHP. Depuis plus de deux d\u00e9cennies, PHPUnit s&#8217;est impos\u00e9 comme la r\u00e9f\u00e9rence en mati\u00e8re de tests PHP et a profond\u00e9ment influenc\u00e9 la fa\u00e7on dont les d\u00e9veloppeurs PHP \u00e9crivent et maintiennent leurs tests. Il reste le framework de tests de r\u00e9f\u00e9rence pour les projets PHP de toutes tailles.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>J&#8217;ai essay\u00e9 tous les IDE PHP jusqu&#8217;\u00e0 ce que je mette la main sur PhpStorm&nbsp;: le premier IDE qui m&#8217;a rendu plus productif, non l&#8217;inverse. Je me suis tout de suite senti \u00e0 l&#8217;aise et je ne pourrais plus imaginer travailler sans ses outils de navigation et de refactorisation du code.<\/p>\n<cite><em>\u2014 Sebastian Bergmann, cr\u00e9ateur de PHPUnit<\/em><\/cite><\/blockquote>\n\n\n\n<p>La derni\u00e8re version, PHPUnit&nbsp;12, privil\u00e9gie la clart\u00e9 du code. La distinction claire entre les stubs de tests et les objets simul\u00e9s (mocks) via des API d\u00e9di\u00e9es repr\u00e9sente une am\u00e9lioration majeure. Cette \u00e9volution architecturale simplifie la maintenance et am\u00e9liore la lisibilit\u00e9 du code de test.<\/p>\n\n\n\n<p>\u00c0 l&#8217;avenir, PHPUnit va introduire la prise en charge du format Open Test Reporting, une alternative moderne et extensible \u00e0 JUnit XML. La prise en charge initiale est pr\u00e9vue pour PHPUnit&nbsp;12.2 (juin 2025), avec l&#8217;abandon de JUnit XML dans PHPUnit&nbsp;13 et sa suppression dans PHPUnit&nbsp;14.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Doctrine DBAL<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/doctrine\/dbal\" target=\"_blank\" rel=\"noopener\">Doctrine DBAL<\/a> est une couche d&#8217;abstraction de bases de donn\u00e9es largement utilis\u00e9e qui fournit aux d\u00e9veloppeurs PHP une API portable et orient\u00e9e objet pour interagir avec les bases de donn\u00e9es SQL. Au sein de l&#8217;\u00e9cosyst\u00e8me PHP, on trouve une large gamme d&#8217;applications et de frameworks qui l&#8217;utilisent.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>J&#8217;utilise PhpStorm au quotidien pour ex\u00e9cuter des tests PHPUnit localement avec plusieurs configurations, interagir avec diff\u00e9rentes bases de donn\u00e9es, g\u00e9rer des conteneurs Docker et ex\u00e9cuter des analyses statiques.<\/p>\n<cite><em>\u2014 Sergei Morozov, responsable de la maintenance de Doctrine DBAL<\/em><\/cite><\/blockquote>\n\n\n\n<p>Bien que le projet soit mature et fournisse la plupart des fonctionnalit\u00e9s essentielles, le travail se poursuit et inclut une refonte fondamentale de la gestion des sch\u00e9mas, la r\u00e9solution des limites de l&#8217;architecture d&#8217;origine et une meilleure prise en charge des normes SQL et des plateformes de base de donn\u00e9es en constante \u00e9volution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CodeIgniter<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/codeigniter4\/CodeIgniter4\" target=\"_blank\" rel=\"noopener\">CodeIgniter<\/a> a \u00e9t\u00e9 cr\u00e9\u00e9 en tant que framework PHP l\u00e9ger et performant, privil\u00e9giant la simplicit\u00e9 et la libert\u00e9 des d\u00e9veloppeurs. Il leur permet de cr\u00e9er selon leurs propres termes, sans conventions rigides&nbsp;: une philosophie fondamentale qui constitue tout son attrait.<\/p>\n\n\n\n<p>CodeIgniter&nbsp;v4 conserve les principes essentiels de son pr\u00e9d\u00e9cesseur, mais adopte des pratiques de d\u00e9veloppement logiciel modernes, telles que des tests robustes et l&#8217;int\u00e9gration avec des outils comme PHPStan, Psalm et Rector.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>L&#8217;un des principaux atouts de CodeIgniter&nbsp;v4 r\u00e9side dans son alignement avec les bonnes pratiques PHP, ce qui permet \u00e0 PhpStorm de fonctionner directement de fa\u00e7on optimale, sans besoin de plugin suppl\u00e9mentaire. L&#8217;IDE comprend instantan\u00e9ment les sch\u00e9mas et les conventions de CodeIgniter, et offre une saisie semi-automatique du code intelligente qui simplifie le d\u00e9veloppement. Cette compatibilit\u00e9 int\u00e9gr\u00e9e cr\u00e9e une exp\u00e9rience exceptionnellement productive pour nos contributeurs.<\/p>\n<cite><em>\u2014 Matt Gatner, contributeur de CodeIgniter<\/em><\/cite><\/blockquote>\n\n\n\n<p>L&#8217;\u00e9quipe continue de faire \u00e9voluer CI4, en se concentrant sur les performances, la modularit\u00e9 et la fluidit\u00e9 de l&#8217;exp\u00e9rience de d\u00e9veloppement. Les prochaines versions visent \u00e0 stabiliser les paquets de t\u00e2ches et de files d&#8217;attente, \u00e0 \u00e9tendre la biblioth\u00e8que de paquets modulaires et \u00e0 am\u00e9liorer la compatibilit\u00e9 avec les derni\u00e8res versions de PHP, tout en maintenant la vision originale du projet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Joomla!<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/joomla\/joomla-cms\" target=\"_blank\" rel=\"noopener\">Joomla!<\/a> est un puissant syst\u00e8me de gestion de contenus open source soutenu par une communaut\u00e9 de b\u00e9n\u00e9voles d&#8217;envergure mondiale. Sa mission est de fournir une plateforme multilingue, flexible et s\u00e9curis\u00e9e, qui permet aux d\u00e9veloppeurs individuels, aux petites entreprises et aux organisations \u00e0 but non lucratif de publier et de collaborer en ligne, tout cela sans la courbe d&#8217;apprentissage ardue des syst\u00e8mes alternatifs.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>L&#8217;analyseur de code statique de PhpStorm m&#8217;a aid\u00e9 \u00e0 nettoyer les docblocks et \u00e0 mieux g\u00e9rer le framework. Il comprend Joomla en profondeur, ce qui fluidifie le d\u00e9veloppement.<\/p>\n<cite>\u2014 <em>Hannes Papenberg, <em>responsable de Joomla<\/em><\/em><\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>PhpStorm me montre comment les fichiers sont connect\u00e9s, d\u00e9tecte rapidement les erreurs de syntaxe et me permet de me concentrer sur les besoins r\u00e9els du client. Cela me donne un \u00e9norme avantage sur d&#8217;autres d\u00e9veloppeurs web qui ne voient pas l&#8217;int\u00e9r\u00eat de l&#8217;utiliser dans leurs processus quotidiens.<\/p>\n<cite>\u2014 <em>Adam Melcher, <em>contributeur Joomla<\/em><\/em><\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>En tant que d\u00e9veloppeur principal de Joomla, PhpStorm m&#8217;a aid\u00e9 sur de nombreux points. Le d\u00e9bogueur pas \u00e0 pas, que j&#8217;utilise presque tous les jours, aide \u00e0 d\u00e9tecter les bugs, \u00e0 comprendre les flux de code et, en g\u00e9n\u00e9ral, il est tr\u00e8s utile de voir ce qui se passe sous le capot. Le plugin Joomla renforce la facilit\u00e9 d&#8217;utilisation, car il comprend la base de code de Joomla et rend la navigation dans le code bien plus simple.<\/p>\n<cite>\u2014 <em>Roland Dalmulder, <em>contributeur Joomla<\/em><\/em><\/cite><\/blockquote>\n\n\n\n<p>La sortie de <a href=\"https:\/\/magazine.joomla.org\/all-issues\/july-2024\/joomla-6,-what-s-in-it-for-you\" target=\"_blank\" rel=\"noopener\">Joomla&nbsp;6<\/a> est pr\u00e9vue pour le 14&nbsp;octobre 2025. Cette nouvelle version continuera \u00e0 moderniser la base de code, apportera de meilleurs outils de r\u00e9f\u00e9rencement et un v\u00e9rificateur de sant\u00e9 int\u00e9gr\u00e9 afin de poursuivre la mission de Joomla&nbsp;: rendre la publication sur le web plus inclusive et plus flexible.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Ces projets ne repr\u00e9sentent qu&#8217;une petite partie de l&#8217;effort open source global, mais ils v\u00e9hiculent les valeurs qui nous tiennent le plus \u00e0 c\u0153ur&nbsp;: la curiosit\u00e9, le savoir-faire et la prise en compte des besoins et attentes de la communaut\u00e9 des d\u00e9veloppeurs.<\/p>\n\n\n\n<p>Bien que chaque projet ait son propre objectif, ils s&#8217;appuient tous sur des workflows coh\u00e9rents et puissants pour maintenir des normes \u00e9lev\u00e9es et faire avancer les choses avec clart\u00e9, et JetBrains est fier de les soutenir dans cette approche. Si vous \u00eates d\u00e9veloppeur open source, vous pourriez avoir droit \u00e0 une licence PhpStorm gratuite ou \u00e0 prix r\u00e9duit. <a href=\"https:\/\/blog.jetbrains.com\/fr\/phpstorm\/2024\/02\/licences-phpstorm-gratuites-et-a-tarif-reduit-qui-y-est-eligible\/\">Consultez<\/a> les options disponibles pour d\u00e9couvrir si c&#8217;est le cas.<\/p>\n\n\n\n<p>Nous avons \u00e9galement eu le plaisir de c\u00e9l\u00e9brer l&#8217;anniversaire de PHP, ainsi que la passion et l&#8217;\u00e9volution de la communaut\u00e9 le 17\u00a0juin dernier lors de notre \u00e9v\u00e9nement en ligne gratuit <a href=\"https:\/\/lp.jetbrains.com\/phpverse-2025\/\" target=\"_blank\" rel=\"noopener\">PHPverse\u00a02025<\/a>, dans le cadre duquel de nombreux acteurs influents de la communaut\u00e9 ont partag\u00e9 leurs points de vues et id\u00e9es sur le langage et son avenir. L&#8217;enregistrement de cet \u00e9v\u00e9nement sera disponible prochainement, alors restez \u00e0 l&#8217;\u00e9coute !<\/p>\n\n\n\n<p><em>Auteur de l&#8217;article original en anglais<\/em> :<\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/05\/av_IMG_5504.jpeg\" width=\"200\" height=\"200\" alt=\"Lena Morozova\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                            <h4>Lena Morozova<\/h4>\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":813,"featured_media":576417,"comment_status":"closed","ping_status":"closed","template":"","categories":[942],"tags":[104,560,8772,8777],"cross-post-tag":[6637],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/blog\/575294"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=575294"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/blog\/575294\/revisions"}],"predecessor-version":[{"id":576461,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/blog\/575294\/revisions\/576461"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/576417"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=575294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=575294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=575294"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=575294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}