<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Laravel</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur le framework PHP Laravel]]></description>
		<language>fr</language>
		<lastBuildDate>Sat, 13 Jun 2026 18:04:20 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Laravel</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title><![CDATA[Laravel PAO fournit une sortie optimisée pour l'IA lorsque certains outils PHP sont exécutés par un agent IA]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183777&amp;goto=newpost</link>
			<pubDate>Mon, 18 May 2026 14:26:31 GMT</pubDate>
			<description>*Des résultats plus clairs...</description>
			<content:encoded><![CDATA[<div><b><font size="4">Des résultats plus clairs pour les agents IA : Laravel PAO, un framework web PHP libre et open source, offre des résultats optimisés pour l'IA lorsque certains outils PHP sont exécutés par un agent IA</font></b> <br />
<br />
<b>Laravel a lancé Laravel PAO, un système de sortie optimisé pour les agents PHP conçu pour redéfinir la manière dont les agents IA interagissent avec les outils de développement PHP courants. Lorsque des outils tels que PHPUnit, Pest, Paratest, PHPStan, Rector ou Laravel Artisan sont invoqués par un agent IA, Laravel PAO fournit une sortie JSON structurée ou rationalisée. Cette approche remplace la sortie console typiquement « décorée », réduisant ainsi le bruit et améliorant la clarté pour le traitement automatique.</b><br />
<br />
Laravel est un framework web PHP libre et open source destiné à la création d'applications web. Il a été créé par Taylor Otwell et est destiné au développement d'applications web suivant le modèle architectural modèle-vue-contrôleur (MVC) et basé sur Symfony. Parmi les fonctionnalités de Laravel, on trouve un système de paquets modulaires avec un gestionnaire de dépendances dédié, différentes méthodes d'accès aux bases de données relationnelles, des utilitaires facilitant le déploiement et la maintenance des applications, ainsi qu'une orientation vers le « syntactic sugar ».<br />
<br />
Récemment, Laravel a lancé Laravel PAO, un système de sortie optimisé pour les agents PHP conçu pour redéfinir la manière dont les agents IA interagissent avec les outils de développement PHP courants. Lorsque des outils tels que PHPUnit, Pest, Paratest, PHPStan, Rector ou Laravel Artisan sont invoqués par un agent IA, Laravel PAO fournit une sortie JSON structurée ou rationalisée. Cette approche remplace la sortie console typiquement « décorée », réduisant ainsi le bruit et améliorant la clarté pour le traitement automatique.<br />
<br />
À la suite de cette version, toutes les nouvelles applications Laravel incluront PAO par défaut en tant que dépendance de développement. Pour les frameworks de test tels que PHPUnit, Pest et Paratest, PAO fournit des résumés JSON compacts. Ceux-ci incluent le nombre de tests, les durées, les détails des échecs ou des erreurs, ainsi que des segments supplémentaires tels que la couverture de code ou le profilage, présentés sans le formatage standard du terminal.<br />
<br />
De plus, pour l'analyse statique avec PHPStan, PAO normalise la sortie en JSON, en mettant l'accent sur le nombre total d'erreurs et les détails par fichier pertinents pour les corrections automatisées. La sortie de Rector est également adaptée, avec un rapport structuré des fichiers modifiés, des différences de code et des rectors appliqués. La sortie de la commande Artisan est débarrassée des éléments décoratifs mais conserve le contenu informatif dans son format standard. Il est à noter que les workflows des développeurs locaux ne sont pas affectés, car PAO ne s'active que lorsqu'un agent compatible est détecté.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/xl9SD2APuV8?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
Voici l'annonce de Laravel PAO :<br />
<br />
<b><font size="3">Présentation de Laravel PAO : une sortie plus épurée pour les agents IA</font></b><br />
<br />
Les développeurs PHP et Laravel effectuent toute la journée la même boucle de rétroaction : tester, corriger, analyser, refactoriser, puis tester à nouveau. Les outils de cette boucle produisent une sortie conçue pour les terminaux humains : couleurs ANSI, lignes de points et tableaux décorés. Cette sortie convient lorsque vous la lisez, mais elle devient encombrante lorsqu’un agent la traite.<br />
<br />
Pour un agent, ce même résultat peut masquer les éléments importants : l'assertion qui échoue, le chemin d'accès au fichier, le numéro de ligne, l'identifiant PHPStan, le diff Rector.<br />
<br />
Laravel PAO (PHP agent-optimized output) résout ce problème. Il détecte quand des outils PHP pris en charge sont exécutés par un agent IA, tel que Claude Code, Cursor, Devin, Gemini CLI ou d'autres. Pour les outils de test et d'analyse, Laravel PAO renvoie un JSON compact et structuré. Pour les commandes Artisan, il nettoie la sortie de console décorée afin que les agents reçoivent les mêmes informations avec moins de bruit.<br />
<br />
À partir d'aujourd'hui, les nouvelles applications Laravel incluent PAO comme dépendance de développement par défaut.<br />
<br />
<b>Ce qui change avec Laravel PAO</b><br />
<br />
Prenons une grande suite de tests PHPUnit. Sans Laravel PAO, un agent reçoit des centaines de caractères de sortie de progression avant de voir si la suite a réussi ou échoué :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">PHPUnit 12.5.14 by Sebastian Bergmann <span style="color: #0000ff;">and</span> contributors..............................................................   <span style="color: #cc66cc;">61</span> / <span style="color: #cc66cc;">1002</span> <span class="br0">&#40;</span>  <span style="color: #cc66cc;">6</span>%<span class="br0">&#41;</span>.............................................................  <span style="color: #cc66cc;">122</span> / <span style="color: #cc66cc;">1002</span> <span class="br0">&#40;</span> <span style="color: #cc66cc;">12</span>%<span class="br0">&#41;</span>.............................                                    <span style="color: #cc66cc;">1002</span> / <span style="color: #cc66cc;">1002</span> <span class="br0">&#40;</span><span style="color: #cc66cc;">100</span>%<span class="br0">&#41;</span>Time: 00:<span style="color: #cc66cc;">00.321</span>, Memory: <span style="color: #cc66cc;">46.50</span> MBOK <span class="br0">&#40;</span><span style="color: #cc66cc;">1002</span> tests, <span style="color: #cc66cc;">1002</span> assertions<span class="br0">&#41;</span></code><hr />
</div><br />
<br />
Avec Laravel PAO, l'agent obtient plutôt ceci :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><span class="br0">&#123;</span><span style="color: #FF0000;">&quot;tool&quot;</span>:<span style="color: #FF0000;">&quot;phpunit&quot;</span>,<span style="color: #FF0000;">&quot;result&quot;</span>:<span style="color: #FF0000;">&quot;passed&quot;</span>,<span style="color: #FF0000;">&quot;tests&quot;</span>:<span style="color: #cc66cc;">1002</span>,<span style="color: #FF0000;">&quot;passed&quot;</span>:<span style="color: #cc66cc;">1002</span>,<span style="color: #FF0000;">&quot;duration_ms&quot;</span>:<span style="color: #cc66cc;">321</span><span class="br0">&#125;</span></code><hr />
</div><br />
<br />
Cette différence peut sembler minime dans un article, mais elle revêt une grande importance lors d'une session de l'agent. La sortie reste concise, quel que soit le nombre de tests réussis.<br />
<br />
Les échecs deviennent également plus utiles. Au lieu de demander à l'agent de fouiller dans une sortie de terminal formatée, PAO lui fournit les détails dont il a besoin pour continuer à travailler :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><span class="br0">&#123;</span>  <span style="color: #FF0000;">&quot;tool&quot;</span>: <span style="color: #FF0000;">&quot;phpunit&quot;</span>,  <span style="color: #FF0000;">&quot;result&quot;</span>: <span style="color: #FF0000;">&quot;failed&quot;</span>,  <span style="color: #FF0000;">&quot;tests&quot;</span>: <span style="color: #cc66cc;">2</span>,  <span style="color: #FF0000;">&quot;passed&quot;</span>: <span style="color: #cc66cc;">1</span>,  <span style="color: #FF0000;">&quot;failed&quot;</span>: <span style="color: #cc66cc;">1</span>,  <span style="color: #FF0000;">&quot;failures&quot;</span>: <span class="br0">&#91;</span>    <span class="br0">&#123;</span>      <span style="color: #FF0000;">&quot;test&quot;</span>: <span style="color: #FF0000;">&quot;Tests<span style="color: #800000;">\\</span>Feature<span style="color: #800000;">\\</span>ExampleTest::it_returns_a_successful_response&quot;</span>,      <span style="color: #FF0000;">&quot;file&quot;</span>: <span style="color: #FF0000;">&quot;tests/Feature/ExampleTest.php&quot;</span>,      <span style="color: #FF0000;">&quot;line&quot;</span>: <span style="color: #cc66cc;">17</span>,      <span style="color: #FF0000;">&quot;message&quot;</span>: <span style="color: #FF0000;">&quot;Failed asserting that 500 is identical to 200.&quot;</span>    <span class="br0">&#125;</span>  <span class="br0">&#93;</span><span class="br0">&#125;</span></code><hr />
</div><br />
<br />
L'agent sait ce qui a échoué, où cela s'est produit et quel message il doit analyser ensuite.<br />
<br />
<b>PAO prend en charge les outils que vous utilisez déjà</b><br />
<br />
Laravel PAO prend actuellement en charge les sorties de PHPUnit, Pest, Paratest, PHPStan, Rector et Laravel Artisan.<br />
<br />
Pour PHPUnit, Pest et Paratest, PAO génère des rapports de résultats concis : nombres, durées, échecs, erreurs, tests ignorés, avertissements, notifications et dépréciations. Les sorties supplémentaires utiles, telles que les résumés de couverture ou de profilage, sont nettoyées et incluses sans le bruit de fond du terminal.<br />
<br />
La sortie PHPStan est normalisée en JSON et se concentre sur le nombre total d'erreurs ainsi que sur les détails par fichier dont les agents ont besoin pour les corriger :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td valign="top"><pre style="margin: 0"><span class="br0">&#123;</span>
  <span style="color: #FF0000;">&quot;tool&quot;</span>: <span style="color: #FF0000;">&quot;phpstan&quot;</span>,
  <span style="color: #FF0000;">&quot;result&quot;</span>: <span style="color: #FF0000;">&quot;failed&quot;</span>,
  <span style="color: #FF0000;">&quot;errors&quot;</span>: <span style="color: #cc66cc;">2</span>,
  <span style="color: #FF0000;">&quot;error_details&quot;</span>: <span class="br0">&#123;</span>
    <span style="color: #FF0000;">&quot;app/Http/Controllers/Controller.php&quot;</span>: <span class="br0">&#91;</span>
      <span class="br0">&#123;</span>
        <span style="color: #FF0000;">&quot;line&quot;</span>: <span style="color: #cc66cc;">9</span>,
        <span style="color: #FF0000;">&quot;message&quot;</span>: <span style="color: #FF0000;">&quot;Method Controller::index() should return int but returns string.&quot;</span>,
        <span style="color: #FF0000;">&quot;identifier&quot;</span>: <span style="color: #FF0000;">&quot;return.type&quot;</span>
      <span class="br0">&#125;</span>
    <span class="br0">&#93;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
La sortie Rector est également simplifiée pour les agents, car elle conserve les fichiers modifiés, les différences et les rectors appliqués dans un format structuré.<br />
<br />
L'objectif n'est pas d'inventer un nouveau workflow. Il s'agit de rendre le workflow que les développeurs Laravel utilisent déjà plus facile à suivre pour les agents.<br />
<br />
<b>Une sortie Artisan plus claire</b><br />
<br />
Pour les commandes Artisan, le résultat n’est pas au format JSON. Il s’agit de la même sortie de commande, mais sans les éléments décoratifs.<br />
<br />
Les commandes telles que <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">about</span>, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">db:show</span> et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">migrate:status</span> incluent souvent des tableaux décorés, des séparateurs par points, des couleurs et des espacements. Ces détails rendent la sortie agréable pour les humains, mais les agents n’en ont pas besoin.<br />
<br />
Par exemple, une sortie comme celle-ci :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">Environment ................................................................
Application Name ................................................... Laravel
Laravel Version ..................................................... 13.3.0
PHP Version .......................................................... 8.5.4
Debug Mode ......................................................... ENABLED</pre></td></tr></table></code><hr />
</div><br />
<br />
devient<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">Environment ..
Application Name .. Laravel
Laravel Version .. 13.3.0
PHP Version .. 8.5.4
Debug Mode .. ENABLED</pre></td></tr></table></code><hr />
</div><br />
<br />
Mêmes informations, moins de tokens à traiter pour l’agent.<br />
<br />
<b>Votre terminal reste le même</b><br />
<br />
Ce point est important : Laravel PAO ne modifie pas l'expérience du terminal pour vous ou votre équipe.<br />
<br />
Lorsque vous exécutez <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">phpunit</span>, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">pest</span>, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">phpstan</span>, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">rector</span> ou <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">artisan</span> directement dans votre terminal, la sortie reste la même. PAO ne s'active que lorsqu'un agent est détecté. Cela offre à Laravel de meilleurs paramètres par défaut pour le développement assisté par IA sans nuire au flux de travail humain.<br />
<br />
<b>Comment fonctionne PAO en coulisses</b><br />
<br />
Laravel PAO n'introduit pas de nouveau binaire et ne vous demande pas d'exécuter une commande différente. Il démarre via le chargement automatique de fichiers de Composer, ce qui lui permet de s'exécuter tôt dans le processus PHP :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0"><span class="br0">&#123;</span>
  <span style="color: #FF0000;">&quot;autoload&quot;</span>: <span class="br0">&#123;</span>
    <span style="color: #FF0000;">&quot;files&quot;</span>: <span class="br0">&#91;</span>
      <span style="color: #FF0000;">&quot;src/Autoload.php&quot;</span>
    <span class="br0">&#93;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
Ce fichier de chargement automatique se ferme immédiatement, sauf si le processus en cours s'exécute dans un environnement d'agent<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">$agent</span> = AgentDetector::detect<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>! <span style="color: #339933;">$agent</span>-&gt;isAgent<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span style="color: #0000ff;">return</span>;
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
À partir de là, PAO examine la commande en cours d'exécution et sélectionne le pilote correspondant<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">$starter</span> = match <span class="br0">&#40;</span>basename<span class="br0">&#40;</span><span style="color: #339933;">$argv</span><span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span> ?? <span style="color: #FF0000;">''</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span style="color: #FF0000;">'pest'</span>    =&gt; <span style="color: #0000ff;">new</span> Drivers\Pest\Starter,
    <span style="color: #FF0000;">'phpunit'</span> =&gt; <span style="color: #0000ff;">new</span> Drivers\Phpunit\Starter,
    <span style="color: #808080;">// ...</span>
<span class="br0">&#125;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
Pour les exécuteurs de tests, PAO évite de récupérer la sortie du terminal. PHPUnit, Paratest et Pest disposent déjà du résultat réel en interne. Pour PHPUnit, PAO injecte l'option <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">--no-output</span> de PHPUnit. Pour Pest et Paratest, PAO désactive l'affichage de la progression et laisse l'exécuteur fonctionner normalement.<br />
<br />
À l'arrêt, PAO capture le résultat du test directement à partir de la façade de résultats de PHPUnit et construit le JSON à partir des données de résultat réelles :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><span style="color: #339933;">$result</span> = PHPUnit\TestRunner\TestResult\Facade::result<span class="br0">&#40;</span><span class="br0">&#41;</span>;</code><hr />
</div><br />
<br />
Pour Paratest, PAO utilise un exécuteur wrapper afin que les résultats des workers parallèles puissent être fusionnés avant que la réponse finale ne soit écrite.<br />
<br />
À partir de là, PAO extrait les champs qui intéressent les agents :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">$result</span> = <span class="br0">&#91;</span>
    <span style="color: #FF0000;">'result'</span> =&gt; <span style="color: #339933;">$testResult</span>-&gt;wasSuccessful<span class="br0">&#40;</span><span class="br0">&#41;</span> ? <span style="color: #FF0000;">'passed'</span> : <span style="color: #FF0000;">'failed'</span>,
    <span style="color: #FF0000;">'tests'</span> =&gt; <span style="color: #339933;">$testResult</span>-&gt;numberOfTestsRun<span class="br0">&#40;</span><span class="br0">&#41;</span>,
    <span style="color: #FF0000;">'assertions'</span> =&gt; <span style="color: #339933;">$testResult</span>-&gt;numberOfAssertions<span class="br0">&#40;</span><span class="br0">&#41;</span>,
&nbsp;
    <span style="color: #808080;">// ...</span>
<span class="br0">&#93;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
Cela permet à PAO d'obtenir les nombres réels, les assertions, la durée, les échecs, les erreurs, les avertissements, les dépréciations et les emplacements des fichiers sans avoir à procéder à une ingénierie inverse du texte formaté.<br />
<br />
Pour PHPStan et Rector, PAO s'appuie sur les modes JSON propres à ces outils plutôt que d'analyser leur sortie lisible par l'homme :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">$_SERVER</span><span class="br0">&#91;</span><span style="color: #FF0000;">'argv'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #FF0000;">'--error-format=json'</span>;
<span style="color: #339933;">$_SERVER</span><span class="br0">&#91;</span><span style="color: #FF0000;">'argv'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #FF0000;">'--no-progress'</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
PAO normalise ensuite ces réponses en les transformant en champs dont les agents ont le plus besoin. Les détails des erreurs PHPStan sont également limités par défaut, avec une indication de passer l'option <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">-v</span> lorsque la liste complète est nécessaire.<br />
<br />
À la fin d'une commande de test, d'analyse ou de refactorisation, PAO écrit un seul objet JSON vers la sortie standard. Toute sortie supplémentaire utile, telle que les informations de couverture ou de profilage, est nettoyée et incluse sans la décoration du terminal qui l'entoure.<br />
<br />
Artisan emprunte une voie différente. Dans les applications Laravel, le fournisseur de services de PAO est détecté automatiquement. Lorsqu'un agent est détecté, il lie l'<span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">OutputStyle</span> de la console Laravel à l'implémentation de PAO et désactive la décoration de la console Symfony dès le lancement des commandes :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">$this</span>-&gt;app-&gt;bind<span class="br0">&#40;</span>OutputStyle::<span style="color: #0000ff;">class</span>, PaoOutputStyle::<span style="color: #0000ff;">class</span><span class="br0">&#41;</span>;
&nbsp;
<span style="color: #339933;">$events</span>-&gt;listen<span class="br0">&#40;</span>CommandStarting::<span style="color: #0000ff;">class</span>, <span style="color: #0000ff;">function</span> <span class="br0">&#40;</span>CommandStarting <span style="color: #339933;">$event</span><span class="br0">&#41;</span>: <span style="color: #0080ff;">void</span> <span class="br0">&#123;</span>
    <span style="color: #339933;">$event</span>-&gt;output-&gt;setDecorated<span class="br0">&#40;</span><span style="color: #0080ff;">false</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
Vos commandes Artisan continuent d'utiliser les mêmes API de console, tandis que PAO nettoie la sortie à la limite.<br />
<br />
<b>Disponible par défaut pour offrir de meilleures valeurs par défaut aux agents IA</b><br />
<br />
Les nouvelles applications Laravel incluent désormais automatiquement Laravel PAO ; il n'y a donc aucun fichier de configuration à publier et aucune installation n'est requise.<br />
<br />
Si vous souhaitez ajouter PAO à une application Laravel existante ou à un projet PHP autonome, installez-le avec Composer :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">composer <span style="color: #0000ff;">require</span> laravel/pao --dev</code><hr />
</div><br />
<br />
PAO fonctionne avec Laravel 12 et versions ultérieures ainsi qu'avec PHP 8.3 et versions ultérieures, et peut également être utilisé dans des projets PHP non-Laravel qui utilisent des outils pris en charge via l'autochargeur de Composer.<br />
<br />
Laravel a toujours accordé une grande importance aux détails qui facilitent le développement : des pages d'erreur claires, des sorties de console explicites, des paramètres par défaut bien pensés et des outils qui vous aident à rester dans le flux.<br />
<br />
À mesure que les agents s'intègrent à ce flux de travail, ils ont besoin du même niveau d'attention. Laravel PAO rend le terminal agréable à l'œil pour les humains et facilite la compréhension, la synthèse et l'exécution des sorties de commande par les agents.<br />
<br />
<b>Sources</b> : <a rel="nofollow" href="https://laravel.com/blog/introducing-laravel-pao-cleaner-output-for-ai-agents" target="_blank">Annonce de Laravel PAO</a>, <a rel="nofollow" href="https://github.com/laravel/pao" target="_blank">Laravel PAO sur GitHub</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Pensez-vous que cette annonce est crédible ou pertinente ?<br />
:fleche: Quel est votre avis sur le sujet ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://php.developpez.com/actu/382285/Laravel-injecte-desormais-des-publicites-directement-dans-le-contexte-de-votre-agent-IA-pour-orienter-les-developpeurs-vers-son-offre-cloud-commerciale-apres-avoir-leve-57-millions-de-dollars-en-capital-risque/" target="_blank">Laravel injecte désormais des publicités directement dans le contexte de votre agent IA pour orienter les développeurs vers son offre cloud commerciale, après avoir levé 57 millions de dollars en capital-risque</a><br />
<br />
:fleche: <a href="https://php.developpez.com/actu/355202/Laravel-11-est-maintenant-disponible-s-accompagnant-de-Laravel-Reverb-le-framework-web-pour-PHP-introduit-une-structure-d-application-minimale-et-utilise-SQLite-par-defaut/" target="_blank">Laravel 11 est maintenant disponible s'accompagnant de Laravel Reverb. Le framework web pour PHP introduit une structure d'application minimale et utilise SQLite par défaut</a><br />
<br />
:fleche: <a href="https://jetbrains.developpez.com/actu/369855/L-etat-de-PHP-en-2024-demographie-EDI-frameworks-adoption-de-l-IA-quelles-sont-les-grandes-tendances-qui-caracterisent-l-ecosysteme/" target="_blank">L'état de PHP en 2024 : démographie, EDI, frameworks, adoption de l'IA, quelles sont les grandes tendances qui caractérisent l'écosystème ?</a></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2105/php/bibliotheques-frameworks/laravel/">Laravel</category>
			<dc:creator>Alex</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183777/php/bibliotheques-frameworks/laravel/laravel-pao-fournit-sortie-optimisee-l-ia-lorsque-certains-outils-php-executes-agent-ia/</guid>
		</item>
	</channel>
</rss>
