<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta http-equiv="x-ua-compatible" content="ie=edge">

        <title>Planète PHP</title>
        <link rel="icon" href="/assets/images/veille-logo-kfIoDGF.svg" sizes="any" type="image/svg+xml">

        <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.php">

        
    
            <link rel="canonical" href="/articles" />
    
            <link rel="next" href="/articles?page=2" />
    
                    <link rel="stylesheet" href="/assets/styles/app-oI5o2Jp.css">
        
                    
<link rel="stylesheet" href="/assets/styles/app-oI5o2Jp.css">
<script type="importmap">
{
    "imports": {
        "app": "/assets/app-NAdK9l0.js",
        "/assets/styles/app.css": "data:application/javascript,"
    }
}
</script><script>
if (!HTMLScriptElement.supports || !HTMLScriptElement.supports('importmap')) (function () {
    const script = document.createElement('script');
    script.src = 'https://ga.jspm.io/npm:es-module-shims@1.10.0/dist/es-module-shims.js';
    if (document.currentScript?.nonce) script.nonce = document.currentScript.nonce;
    script.setAttribute('crossorigin', 'anonymous');
    script.setAttribute('integrity', 'sha384-ie1x72Xck445i0j4SlNJ5W5iGeL3Dpa0zD48MZopgWsjNB/lt60SuG1iduZGNnJn');
    document.head.appendChild(script);
})();
</script>
<link rel="modulepreload" href="/assets/app-NAdK9l0.js">
<script type="module">import 'app';</script>            </head>
    <body class="dark:bg-slate-800 flex flex-col h-screen justify-between">
        <div>
            <div class="hidden sm:block bg-primary-900">
                <nav class="container mx-auto flex text-white justify-center">
                    <a href="https://afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">AFUP</a>
                    <a href="https://event.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">Forum PHP 2026</a>
                    <a href="https://barometre.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">Baromètre</a>
                    <a href="https://planete-php.fr" class="px-5 py-1 text-sm hover:bg-primary-500 bg-primary-500">Planète PHP</a>
                    <a href="https://pufa.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">PUFA</a>
                </nav>
            </div>

            <div class="bg-primary-500">
                <nav class="container mx-auto flex flex-col sm:flex-row text-white px-0 sm:px-64 justify-center">
                    <div class="flex items-center grow gap-4 p-2 sm:p-0">
                        <img src="/assets/images/afup-icon-inverted-Fo5OHjq.png" class="h-11 my-auto" alt=""/>
                        <a href="/" class="text-2xl font-bold" data-qa="site-name">Planète PHP</a>
                    </div>
                    <div class="flex justify-between">
                        <a href="/articles" class="px-6 py-4 hover:bg-primary-300 bg-primary-300 sm:bg-transparent sm:border-b-4 border-white">Articles</a>
                        <a href="/feeds" class="px-6 py-4 hover:bg-primary-300">Sources</a>
                        <a href="http://www.planete-php.fr/rss.php" class="px-6 py-4 hover:bg-primary-300">Flux RSS</a>
                    </div>
                </nav>
            </div>

            <main class="container mx-auto px-0 sm:px-64 mt-0 sm:mt-4">
                
    <div class="flex flex-col gap-4 mt-4 sm:mt-0">
                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-1-date">24/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                24/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-1-title">UX Days 2026 : Design, IA et conscience, ce que cette journée nous a appris sur notre métier</h2>
                <a href="https://jolicode.com/blog/ux-days-2026-design-ia-et-conscience-ce-que-cette-journee-nous-a-appris-sur-notre-metier" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-1-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-1-content">
                L'intelligence artificielle redessine nos métiers. C'est le constat que partagent aujourd'hui designers, développeurs et product managers. Les UX Days 2026 n'ont pas échappé à cette réalité. Parmi les...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-2-date">24/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                24/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-2-title">Comité de sélection du Forum PHP 2026 : ses membres, son processus, son verdict !</h2>
                <a href="https://afup.org/news/1260-comite-selection-forumphp2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-2-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-2-content">
                Qui est membre du comité de sélection 2026 ?
Le comité de sélection est en charge d’élaborer le programme du Forum PHP. Il est constitué de membres du pôle conférences de l’AFUP, membres qui sont également...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-3-date">16/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                16/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-3-title">L&#039;IA pousse à faire soi-même, au détriment de l&#039;équipe</h2>
                <a href="https://www.jdecool.fr/blog/2026/06/17/l-ia-pousse-a-faire-soi-meme-au-detriment-de-l-equipe.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-3-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-3-content">
                Je commence à voir de plus en plus d’équipes où le lead tech est devenu plus rapide à implémenter une fonctionnalité via l’IA qu’à l’expliquer, la déléguer et attendre que quelqu’un la prenne en charge....
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-4-date">15/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                15/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-4-title">Comprendre (enfin) les TTY et PTY avec le composant Process de Symfony</h2>
                <a href="https://jolicode.com/blog/comprendre-enfin-les-tty-et-pty-avec-le-composant-process-de-symfony" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-4-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-4-content">
                Vous est-il déjà arrivé de lancer une commande (composer, rsync ou une commande Symfony) directement dans votre terminal pour y admirer de jolies barres de progression colorées, mais de constater que...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-5-date">10/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                10/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-5-title">Comment utiliser les attributs PHP sur un contrôleur Symfony ?</h2>
                <a href="https://jolicode.com/blog/comment-utiliser-les-attributs-php-sur-un-controleur-symfony" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-5-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-5-content">
                PHP 8.0 a introduit les attributs, et c'est une excellente fonctionnalité ! Le code devient plus lisible, plus simple à écrire, et bénéficie pleinement de la coloration syntaxique et du linting de notre...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-6-date">09/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                09/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-6-title">Améliorer la maintenance de vos workflows GitHub</h2>
                <a href="https://jolicode.com/blog/ameliorer-la-maintenance-de-vos-workflows-github" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-6-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-6-content">
                Les failles de sécurité liées à la supply chain sont de plus en plus courantes. En tant que mainteneur d'un projet open source populaire, l'enjeu est de taille. Votre code est déployé sur de nombreux...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-7-date">09/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                09/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-7-title">Satellites, Horloge à air et cimetière des IA</h2>
                <a href="https://www.synolia.com/synolab/front-office/satellites-horloge-a-air-et-cimetiere-des-ia/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-7-feed">
                    Lire l'article sur Synolia
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-7-content">
                Découvrez notre veille technique du mois de mai entre satellites, horloge à air et cimetière des IA.
Tout savoir sur les satellites
Vous êtes-vous déjà demandé comment Internet arrivait jusqu’à vos téléphones...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-8-date">08/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                08/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-8-title">Contre-performance pour la campagne de collecte du baromètre des salaires en PHP 2026</h2>
                <a href="https://afup.org/news/1259-contreperformance-barometre-salaires-2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-8-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-8-content">
                Une participation en baisse
La quatorzième édition du baromètre des salaires en PHP vient de clore sa campagne de récolte de données. 509 professionnel•le•s ont pris le temps de répondre à l'enquête cette...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-9-date">05/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                05/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-9-title">Qu&#039;est-ce qu&#039;un « bon code » à l&#039;ère de l&#039;IA ?</h2>
                <a href="https://www.jdecool.fr/blog/2026/06/06/qu-est-ce-qu-un-bon-code-a-l-ere-de-l-ia.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-9-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-9-content">
                La semaine dernière, je faisais référence au mantra “code is cheap”. Depuis, j’ai trouvé le projet “Agentic Engineering Patterns” de Simon Willison qui documente les patterns pratiques pour travailler...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-10-date">02/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                02/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-10-title">Correcteur orthographique pour Chrome via Gemini nano</h2>
                <a href="https://www.gameandme.fr/divers/correcteur-orthographique-pour-chrome-via-gemini-nano/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-10-feed">
                    Lire l'article sur Yohann Nizon (Game And Me)
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-10-content">
                Il y a quelques temps, j&#8217;ai entendu parler d&#8217;un sujet à débat quant à l&#8217;introduction silencieuse du LLM Gemini nano dans le navigateur Chrome. Au delà de l&#8217;aspect polémique du...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-11-date">02/06/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                02/06/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-11-title">Des nouvelles de la situation de l&#039;AFUP</h2>
                <a href="https://afup.org/news/1256-des-nouvelles-situation-afup-mai2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-11-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-11-content">
                Nous vous avions partagé nos difficultés sur notre site.
Un AFUP Day 2026 qui manque à ses objectifs
L'AFUP Day est l'événement printanier multi-destinations de l'AFUP depuis 2019. Chaque année, le cycle...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-12-date">31/05/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                31/05/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-12-title">Profilez vos tests PHPUnit avec OpenTelemetry</h2>
                <a href="https://www.jdecool.fr/blog/2026/06/01/profilez-vos-tests-phpunit-avec-opentelemetry.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-12-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-12-content">
                Un projet de développement informatique qui grossit, c’est une base de code qui grossit par la même occasion et la batterie de tests qui évolue en conséquence. On ajoute des tests semaine après semaine,...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-13-date">26/05/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                26/05/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-13-title">AFUP Day 2026 Paris, retour sur une journée dans l&#039;écosystème PHP</h2>
                <a href="https://jolicode.com/blog/afup-day-2026-paris-retour-sur-une-journee-dans-l-ecosysteme-php" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-13-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-13-content">
                Ce vendredi 22 mai 2026, l'équipe JoliCode était présente à l'AFUP Day 2026 Paris à l'ESGI Paris pour une journée de conférences. L'ambiance était conviviale et studieuse, avec un programme axé sur l'IA,...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-14-date">26/05/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                26/05/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-14-title">Bilan de l&#039;AFUP Day 2026</h2>
                <a href="https://afup.org/news/1258-bilan-afupday2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-14-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-14-content">
                La communauté réunie
Nous étions 75 environ à Bordeaux,  90 à Lille, 220 à Lyon, et 80 à Paris, réunis toute une journée pour profiter du partage des savoirs proposé par des conférenciers et conférencières...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-15-date">23/05/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                23/05/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-15-title">Le Forum PHP 2026 est annoncé</h2>
                <a href="https://afup.org/news/1257-forumphp2026-annonce" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-15-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-15-content">
                Le Forum PHP revient à l'Hôtel New York - The Art of Marvel pour une cinquième édition consécutive, et un programme qui nous permettra d'y voir plus clair sur l'avenir de nos métiers. Venez apprendre,...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-16-date">17/05/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                17/05/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-16-title">Utiliser PHP avec Airflow</h2>
                <a href="https://www.jdecool.fr/blog/2026/05/18/utiliser-php-avec-airflow.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-16-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-16-content">
                Je travaille actuellement sur un projet orienté BI pour lequel des scripts d’analyse et de visualisation de données sont écrits en Python et sont orchestrés par Apache Airflow. Airflow est un outil Python,...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-17-date">12/05/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                12/05/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-17-title">Comment intégrer l&#039;IA dans son workflow UX/UI</h2>
                <a href="https://jolicode.com/blog/comment-integrer-l-ia-dans-son-workflow-ux-ui" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-17-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-17-content">
                &quot;On a déjà deux agents IA qui tournent en interne.&quot;
Ce n'est pas en réunion que j'ai entendu ça. C'est en mission chez un client, dans leurs bureaux. Ce genre de phrase, je l'entends de plus...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-18-date">11/05/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                11/05/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-18-title">Dernière semaine de billetterie pour l&#039;AFUP Day 2026</h2>
                <a href="https://afup.org/news/1255-derniere-semaine-billetterie-afupday2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-18-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-18-content">
                Un événement qualitatif où que vous choisissiez d'aller
Tech pure, arrivée fracassante de l'IA dans notre quotidien, bonnes pratiques, outils qui facilitent le quotidien, sujets plus sociaux ou managériaux......
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-19-date">08/05/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                08/05/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-19-title">Faire des requêtes CTE avec Doctrine ORM en PHP</h2>
                <a href="https://www.jdecool.fr/blog/2026/05/09/faire-des-requetes-cte-avec-doctrine-orm-en-php.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-19-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-19-content">
                J’ai déjà évoqué sur ce blog que le développement “moderne” avec les ORM masque les fonctionnalités avancées des SGBD au point que dorénavant les développeurs ne maitrisent et ne connaissent guère plus...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-20-date">28/04/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                28/04/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-20-title">Claude Code, Cursor, Symfony/AI, Vercel AI SDK : 3 formations pour garder la main</h2>
                <a href="https://jolicode.com/blog/claude-code-cursor-symfony-ai-vercel-ai-sdk-3-formations-pour-garder-la-main" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-20-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-20-content">
                Trois formations IA sont disponibles dès maintenant sur JoliCampus, avec des sessions ouvertes à l'inscription. Elles sont construites sur ce qu'on pratique chez JoliCode et Premier Octet : des projets...
            </p>
        </article>
    </div>
</div>

            </div>

    <nav class="sm:my-12 flex justify-between dark:text-gray-300">
        <div class="flex-grow">
                    </div>

                    <a href="/articles?page=2" class="block p-6 sm:p-0 hover:underline" data-qa="page-next">Page suivante</a>
            </nav>

            </main>
        </div>

        <footer class="py-5 bg-slate-50 dark:bg-slate-700 dark:text-white text-center">
            Un site <a href="https://afup.org" class="text-primary-500 hover:underline">AFUP</a><br />
            Hébergé sur <a href="https://www.clever-cloud.com" class="text-primary-500 hover:underline">Clever Cloud</a><br/>
            Code Source sur <a href="https://github.com/afup/planete" class="text-primary-500 hover:underline">GitHub</a>
        </footer>
    </body>
</html>
