The Daily Commit · Ressort-Ausgabe Titelseite PHP AI Dev EN DE FR ES

The Php Times

Lesestoff — Ökosystem

CPX 2.0: Ein Executor im npx-Stil für Composer-Pakete


CPX, jetzt ein First-Party-Laravel-Paket, führt Binaries beliebiger Composer-Pakete aus, ohne sie im Projekt oder global zu installieren.

LARAVEL NEWS, 30. Juli 2026 kuratiert von Sönke

Version 2.0 bevorzugt lokale Projekt-Binaries, ersetzt feste Shortcuts durch eigene Aliase, führt Skripte und Gists aus und liefert JSON-Ausgabe für KI-Agenten.

CPX ist ein CLI-Tool, das Befehle aus beliebigen Composer-Paketen ausführt, ohne das Paket im Projekt zu installieren — das Composer-Äquivalent zu npx aus der npm-Welt. Jedes Paket landet in einem eigenen isolierten Verzeichnis, was die Abhängigkeitskonflikte von composer global require vermeidet; wiederholte Aufrufe nutzen die Installation erneut und prüfen auf Updates.

Man übergibt den Paketnamen (optional mit Versionsconstraint) sowie den Befehl und seine Argumente, etwa cpx friendsofphp/php-cs-fixer:^3.0 php-cs-fixer fix ./src. Bei Paketen mit nur einem Binary entfällt der Befehl; bei mehreren fragt Version 2.0 nach. Ein Verweis auf ein lokales Verzeichnis mit gültiger composer.json und installiertem vendor/autoload.php führt das deklarierte Binary direkt aus dem Checkout aus — praktisch für lokale Paketentwicklung.

Die größte Verhaltensänderung gegenüber 1.x: cpx sucht vom aktuellen Verzeichnis aufwärts nach dem nächsten Composer-Projekt und bevorzugt dessen Binary aus dem bin-dir. cpx pint nutzt also die vom Projekt gepinnte Version. Versionsconstraints werden beachtet, --skip-local erzwingt die isolierte Kopie.

Die feste Alias-Liste aus 1.x ist gestrichen; eigene Aliase definiert man mit cpx alias, gespeichert in ~/.cpx/ und verwaltet über cpx aliases und cpx unalias. cpx installed listet ausgeführte Pakete, cpx clean räumt ungenutzte auf (--all entfernt alles), und cpx list zeigt nun die cpx-Befehle.

cpx exec führt PHP-Skripte, Inline-Code via -r oder Gists aus (mit Revisions-Pinning per SHA und GITHUB_TOKEN gegen Rate-Limits). cpx tinker delegiert in Laravel-Projekten an php artisan tinker und öffnet sonst eine PsySH-Shell. Beide erkennen den Composer-Autoloader, aliasen nicht importierte Klassen und booten Laravel- (Config, Facades, .env, $app) oder Symfony-Anwendungen ($kernel, $container) — abschaltbar mit --no-boot. Der Code läuft in einem eigenen PHP-Prozess mit Exit-Code-Weitergabe. Die Hilfsfunktion cpx_require() lädt Pakete bei Bedarf nach.

Im nicht-interaktiven Betrieb — umgeleitetes stdin, -n oder ein über laravel/agent-detector erkannter KI-Agent — unterdrückt cpx TTY und Fortschrittsanzeige und gibt JSON-Einzeiler aus; --json erzwingt dies interaktiv, und das Überschreiben von Aliasen erfordert --force.

cpx 2.0 benötigt PHP 8.3+ und wird per composer global require cpx/cpx installiert. Ursprünglich von Liam Hammett geschaffen, ist es nun ein First-Party-Paket laravel/cpx; Taylor Otwell demonstrierte es auf der Laracon US 2026. Ein Upgrade-Guide begleitet den Umstieg von 1.x, Doku gibt es auf GitHub und cpx.dev.

Originalquelle lesen (Englisch) ↗

Artikel bewerten: 0

Leserforum

Noch keine Beiträge — eröffne die Debatte.

← Ökosystem — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Bildschirm-Ausgabe · Impressum · Datenschutz