Magazin
Wochenupdate: Mehr Layoutfreiheit und erfasster KI-Verbrauch
Nextrap erweitert mobile Karten und randlose Medien. Phore erfasst KI-Nutzung innerhalb eines PHP-Prozesses, veröffentlicht JSON Patch 1.0.0 auf GitHub und liest Mailpasswörter aus Umgebungsvariablen oder Secret-Dateien; ob die Version auch über Packagist, das zentrale PHP-Paketverzeichnis, verfügbar ist, wurde nicht bestätigt.
Nextrap, Phore AI Harness und Phore Mailclient haben die hier ausgewählten Änderungen zwischen dem 5. und 12. September in ihren öffentlichen Repositories auf main gemergt. phore/json-patch erhielt zusätzlich am 10. September das bestätigte GitHub Release 1.0.0. Ob diese Version auch über Packagist, das zentrale PHP-Paketverzeichnis, verfügbar ist, wurde nicht bestätigt. Die übrigen Änderungen werden deshalb ausschließlich als Entwicklungsstand auf main beschrieben.
Die gemeinsame Linie ist erfreulich unspektakulär: Layoutregeln, KI-Kosten, Datenänderungen und Mailzugänge werden ausdrücklicher steuerbar. Das klingt weniger groß als „alles neu“ und ist meistens nützlicher.
Nextrap: Karten dürfen gezielt an den Rand
ntl-card-row ist eine Nextrap-Komponente, die mehrere Inhaltskarten in einem Layout anordnet. Der neue Modifier with-horizontal-flow schaltet für eine einzelne Card-Reihe ein alternatives Verhalten ein. Ein Modifier ist hier eine optionale CSS-Klasse: Sie aktiviert eine Funktion, ohne den Standard aller Card-Reihen zu verändern.
## Meilensteine
{: layout="ntl-card-row.with-horizontal-flow"
section-style="--cols: 3; --visible-cols-mobile: 1.2; --horizontal-flow-gap: 16px;"}
Auf kleinen Bildschirmen entsteht damit eine horizontal scrollbar angeordnete Folge; auf dem Desktop bleibt das bestehende Spaltenraster erhalten. Der sichtbare Anschnitt der nächsten Karte kann anzeigen, dass seitlich weiterer Inhalt wartet. Dafür braucht es weder doppeltes HTML noch ein JavaScript-Karussell.
Auch einzelne Karten werden flexibler. Ein Sass-Mixin ist ein wiederverwendbarer Block aus Stylesheet-Regeln, der beim Übersetzen von Sass in CSS an der gewünschten Stelle eingefügt wird. with-region-bleed() erweitert ausgewählte Kartenregionen bis an die innere Rahmenkante:
@include card.with-region-bleed(image);
@include card.with-region-bleed(header, inline);
ntl-2col, die Nextrap-Komponente für zweigeteilte Inhalte, ergänzt dazu with-media-frame($enabled: false). Einzelne Medien dürfen damit in den Layoutbereichen Aside und Top bis an den Rand reichen. Layoutbereiche sind fest benannte Positionen einer Komponente; Aside bezeichnet hier den seitlichen, Top den oberen Bereich. Abstand zum Text, Rahmen und Rundung bleiben erhalten.
Der praktische Gewinn liegt in der Zuständigkeit: Die Komponenten stellen die Geometrie bereit, das Theme entscheidet gezielt, welche Region ausbrechen darf.
Öffentliche PRs: mobile horizontale Card-Reihe, randlose Card-Regionen und randfüllende Medien im Zweispaltenlayout.
Phore AI Harness: Kosten werden innerhalb des Prozesses sichtbar
Phore AI Harness ist eine PHP-Bibliothek für Aufrufe von KI-Modellen. Sie sammelt nun Request-, Fehler- und Tokenzahlen sowie geschätzte Kosten. Ein Request ist dabei ein einzelner Versuch, eine Anfrage an die Modell-API zu senden; ein erneuter Folgeaufruf zählt als weiterer Request.
$stats = get_ai_usage_stats();
printf(
"%d Requests, %d Tokens\n",
$stats['requests'],
$stats['totalTokens']
);
print_r($stats['models']);
Prozessweit heißt wörtlich: Die Werte werden innerhalb eines laufenden PHP-Prozesses gesammelt. Getrennte PHP-FPM-Anfragen oder mehrere Worker werden nicht automatisch zu einer Gesamtstatistik zusammengeführt.
Zusätzlich lässt sich Reasoning konfigurieren. Gemeint ist der bei unterstützten Modellen einstellbare interne Rechenaufwand für die Bearbeitung einer Anfrage; die Bibliothek verwendet standardmäßig die Stufe low. Das ist eine Laufzeitentscheidung, kein Versprechen, dass mehr Aufwand automatisch ein besseres Ergebnis liefert.
Für benannte Modelle, die weder einem exakten Eintrag noch einem bekannten datierten Snapshot zugeordnet werden können, verwendet die Kostenschätzung einen konservativen Fallback. Ein Fallback ist eine Ersatzregel, die greift, wenn die genauere Zuordnung fehlt. fallbackRequests zählt solche Schätzungen; pricingSource zeigt pro Modell, woher der verwendete Preis stammt. totalCostUsd bleibt nur dann unvollständig und damit null, wenn Nutzungsdaten fehlen, Requests noch laufen oder wenn ein Modellname fehlt oder leer ist. Ein benanntes unbekanntes Modell wird dagegen über den konservativen Fallback bepreist.
Die Zahl bleibt eine Schätzung: Separate Werkzeug-, Bild- oder Audiogebühren und mögliche Tarifaufschläge sind nicht enthalten. Immerhin ist jetzt sichtbar, an welcher Stelle gerechnet und an welcher geschätzt wurde. Kostenkontrolle beginnt selten glamouröser.
Öffentliche PRs: Reasoning-Konfiguration, globale Usage- und Kostenstatistik und konservative Preis-Fallbacks.
Phore JSON Patch: atomare Änderungen mit Release 1.0.0
Der deterministische Patch-Kern des AI Harness wurde in phore/json-patch ausgelagert. JSON Patch nach RFC 6902 ist ein von der Internet Engineering Task Force standardisiertes Format: Es beschreibt Änderungen an JSON-Daten als geordnete Operationen wie test, replace oder add.
$patch = JsonPatch::fromArray([
['op' => 'test', 'path' => '/title', 'value' => 'Draft'],
['op' => 'replace', 'path' => '/title', 'value' => 'Published'],
]);
$result = (new JsonPatchApplier())->apply($original, $patch);
$edited = $result->value;
apply() liefert also ein Ergebnisobjekt; der tatsächlich geänderte Wert steht in dessen Eigenschaft value. Die Operationen laufen auf einer abgetrennten Kopie. Schlägt eine davon fehl, bleibt der ursprüngliche Wert unverändert. Hinzu kommen Grenzen für Patchgröße und Verschachtelung, Konfliktprüfungen und eine optionale Array-Darstellung, die Einträge über stabile IDs statt über beim Sortieren verschiebbare Zahlenpositionen anspricht.
Der öffentliche Pull Request wurde am 10. September auf main gemergt; wenige Minuten später erschien GitHub Release 1.0.0. Das öffentliche README spricht noch von einer vorbereiteten Veröffentlichung. Dieser Satz kann gegenüber dem GitHub-Release-Stand veraltet sein, belegt aber keine Packagist-Verfügbarkeit. Deshalb wird hier weder ein composer require empfohlen noch eine Veröffentlichung auf Packagist behauptet.
Öffentliche Änderung: phore/json-patch Pull Request 1.
Phore Mailclient: Passwortnamen statt Passwörter
phore/mailclient kann Mailbox-Einstellungen nun aus einer lokalen JSON-Datei laden. Statt eines Klartextpassworts darf die Konfiguration den Namen eines Secrets enthalten:
{
"host": "imap.example.org",
"username": "support@example.org",
"passwordFromSecretName": "SUPPORT_MAIL_PASSWORD"
}
$config = MailboxConfig::fromFile('/etc/my-app/mailbox.json');
$client = $config->connect();
Beim Verbinden liest die Bibliothek den Wert zuerst aus der gleichnamigen Umgebungsvariable. Ist diese nicht gesetzt, sucht sie in /var/run/secrets/<Name>. Eine Secret-Datei ist eine vom Betriebssystem oder einer Container-Plattform eingehängte Datei, die einen vertraulichen Wert bereitstellt, ohne ihn in die normale Anwendungskonfiguration zu schreiben.
Fehlende und leere Secrets führen zu einem Fehler; der aufgelöste Wert wird nicht im Konfigurationsobjekt zwischengespeichert. Das ersetzt keine Geheimnisverwaltung. Es sorgt lediglich dafür, dass die Bibliothek vorhandene Ablagewege vernünftig nutzen kann – klein genug für einen Absatz, wichtig genug für den Betrieb.
Öffentliche Änderung: phore/mailclient Pull Request 4.
Was in dieser Auswahl fehlt
Für diesen Rückblick wurden die öffentlich sichtbaren Änderungen vom 5. bis 12. September 2026 geprüft. Aus TrunkJS wurde in diesem Zeitraum keine Änderung ausgewählt, die die redaktionelle Schwelle eines praktisch einsetzbaren neuen Features erreichte. Unter den öffentlich geprüften Brace-Repositories wurde im selben Zeitraum kein passender gemergter Pull Request gefunden. Diese Aussagen beschreiben ausschließlich das geprüfte Wochenfenster und die Auswahl für diesen Artikel.
Ein Wochenupdate ist kein Anwesenheitsnachweis.
Quellen
- Nextrap PR 179: Mobile Horizontal Flow, gemergt am 7. September 2026
- Nextrap PR 196: Region Bleed, gemergt am 10. September 2026
- Nextrap PR 198: Media Frame, gemergt am 10. September 2026
- Phore AI Harness PR 11: Reasoning-Option, gemergt am 11. September 2026
- Phore AI Harness PR 12: Usage-Statistik, gemergt am 11. September 2026
- Phore AI Harness PR 13: Preis-Fallbacks, gemergt am 11. September 2026
- Phore JSON Patch PR 1, gemergt am 10. September 2026
- Phore JSON Patch Release 1.0.0, veröffentlicht am 10. September 2026
- Phore Mailclient PR 4, gemergt am 11. September 2026
Quellenstand: 12. September 2026.