NCA PHP AI Coding Guidelines: Regeln, Spezifikationen, Tests und Quality Gates für KI Code in bestehenden PHP und Symfony Projekten. Hands on mit eurem Team.
Zu den NCA PHP AI Coding Guidelines
Ein Tag inhouse mit Benjamin Klein für Developer, Tester und Admins. Context Engineering, Harness, ADRs und zwei Hands on Blöcke mit KI Agenten in eurem Setup.
// Agent Code: gruppiert über die Stammfiliale des Kunden
$qb->select('b.name AS filiale, SUM(o.total) AS umsatz')
->from(Order::class, 'o')
->join('o.customer', 'c')
->join('c.homeBranch', 'b')
->groupBy('b.id');
// Richtig: gruppiert über die Filiale der Bestellung
$qb->select('b.name AS filiale, SUM(o.total) AS umsatz')
->from(Order::class, 'o')
->join('o.branch', 'b')
->groupBy('b.id');
public function testUmsatzZaehltFilialeDerBestellung(): void
{
$kunde = $this->kundeMitStammfiliale('Duisburg');
$this->bestellung($kunde, filiale: 'Essen', betrag: 100);
$umsatz = $this->report->umsatzProFiliale();
self::assertSame(100, $umsatz['Essen']);
self::assertArrayNotHasKey('Duisburg', $umsatz);
}
try {
$this->payment->charge($order);
$order->markAsPaid();
$this->entityManager->flush();
} catch (\Throwable $e) {
$this->logger->warning($e->getMessage());
return false;
}
#[Route('/api/rechnungen/{nummer}')]
public function show(string $nummer, Connection $db): JsonResponse
{
$rechnung = $db->fetchAssociative(
"SELECT * FROM rechnung WHERE nummer = '" . $nummer . "'"
);
return $this->json($rechnung);
}
#[Route('/api/rechnungen/{nummer}')]
#[IsGranted('VIEW', subject: 'rechnung')]
public function show(
#[MapEntity(mapping: ['nummer' => 'nummer'])] Rechnung $rechnung,
): JsonResponse {
return $this->json($rechnung);
}
Die rote Phase ist die einzige, die nicht delegiert werden darf.
NCA PHP AI Coding Guidelines: Regeln, Spezifikationen, Tests und Quality Gates für KI Code in bestehenden PHP und Symfony Projekten. Hands on mit eurem Team.
Zu den NCA PHP AI Coding Guidelines
Wir arbeiten seit über 20 Jahren mit PHP und Symfony. Wir helfen bei PHP Updates und PHP Refactoring und beraten remote zu allen Fragen rund um PHP. Zuerst sichern Tests und statische Analyse den Code ab, dann räumen wir auf. Automatische CI/CD Deployments und eine stabile Docker Umgebung sorgen dafür, dass jede Änderung sicher live geht.
AI Code Review für PHP Projekte ist die Prüfung von Code aus einem KI Agenten gegen Fachlogik, Sicherheit und Architektur. Es kombiniert statische Analyse mit PHPStan und Psalm, Tests mit echten Erwartungen, einen optionalen KI Review Layer und ein menschliches Review mit Fachwissen. Ziel ist Code, der fachlich stimmt und ins Projekt passt. Grüne Tests allein belegen das nicht.
Typisch sind fünf Muster. Queries verknüpfen über die falsche Relation, Grenzfälle wie negative Mengen fehlen, catch Blöcke verschlucken halbe Ausführungen, Endpoints prüfen keine Rechte oder Mandanten, und Logik landet in der falschen Schicht. Allen gemeinsam ist, dass der Code korrekt aussieht. Der Fehler zeigt sich erst im Abgleich mit Fachlogik, Sicherheitsregeln oder Architektur.
Nein. KI Review Tools finden auffällige Muster im Diff und vergessene Fälle. Projektwissen und Fachregeln außerhalb des Diffs kennen sie nur begrenzt. Sie ergänzen statische Analyse, Tests und das menschliche Review, ersetzen aber keines davon. Sinnvoll sind sie als dritte Stufe, wenn PHPStan, Psalm und eine belastbare Testsuite schon in der Pipeline laufen.
Die Basis sind statische Analyse mit PHPStan oder Psalm, Coding Standards, PHPUnit Tests und Functional Tests mit Symfony. Dazu kommen Cypress E2E Tests für die wichtigsten Abläufe. Alle Tore laufen lokal, im Git Hook und in der Pipeline mit demselben Skript. Was lokal durchgeht, geht dann auch in GitHub Actions oder GitLab CI durch.
Den ersten, fehlschlagenden Test schreibt ein Mensch mit Fachwissen. So steht fest, was richtig ist, bevor der Agent eine Lösung liefert. Der Agent darf danach die Umsetzung schreiben, bis der Test grün ist. Tests, die der Agent selbst erzeugt, sind Entwürfe. Sie werden erst zum Akzeptanztest, wenn jemand sie gegen die Anforderung geprüft hat.
Ein grüner Test zeigt nur, dass der Code die Erwartungen im Test erfüllt. Stammen Test und Code vom selben Agenten, prüft der Agent seine eigene Deutung gegen sich selbst. Fehlt ein Fall im Test, fehlt er auch im Beweis. Belastbar wird eine Testsuite erst, wenn die Erwartungen unabhängig vom Code aus der Anforderung kommen.
Mutation Testing zeigt, ob Tests Fehler wirklich finden. Ein Werkzeug wie das Infection Framework verändert den Code gezielt, etwa ein Größer in ein Größer gleich. Bleiben die Tests trotzdem grün, sichern sie diese Stelle nicht ab. Gerade bei Tests aus einem Agenten wird so schnell sichtbar, welche Grenzen nur scheinbar geprüft werden.
Mit Testdaten, die den Fehler sichtbar machen. Ein Test mit einem Kunden, der in seiner Stammfiliale bestellt, bleibt auch bei falschem Join grün. Erst Faker Daten mit Bestellungen in fremden Filialen, leeren Ergebnissen und Grenzwerten zeigen, ob über die richtige Relation verknüpft wird. Die Assertion prüft konkrete Werte und nicht bloß, ob Daten zurückkommen.
Psalm verfolgt mit der Taint Analysis unsichere Datenflüsse bis zur SQL Abfrage. Rechte prüft man mit Symfony Votern und mit Tests, die einen fremden Mandanten simulieren. Im Review gehört zu jedem neuen Endpoint die Frage nach Authentifizierung, Autorisierung und Eingabevalidierung. Ein Agent setzt Sicherheit oft nur um, wenn sie ausdrücklich in der Aufgabe steht.
Nur mit gutem Grund, und dieser Grund gehört ins Review. Ein guter Bugfix fügt Erwartungen hinzu und lässt bestehende stehen. Ändert ein Agent einen Test, damit die Suite grün wird, kann er damit genau den Fehler verdecken. Geänderte Erwartungen, übersprungene Tests und neue Skip Markierungen sind deshalb Warnsignale im Pull Request.
Ja, dort ist es besonders wichtig. In gewachsenem Code fehlen oft Tests, und ein Agent findet wenig Halt. Wir setzen zuerst Quality Gates mit statischer Analyse, Unit Tests, Functional Tests und Cypress. Danach wird manuell mit KI Unterstützung aufgeräumt. Für den Weg aus dem Legacy heraus setzen wir auf ein paralleles neues Projekt.
Bis zum ersten soliden Ergebnis vergehen realistisch 15 bis 30 Tage. Dann stehen Regeln und Rechte, die ersten Quality Gates laufen in der Pipeline und ein Review Agent arbeitet täglich mit. Das untere Ende setzt Versionskontrolle, Tests und Pipeline voraus. Danach begleiten wir einige Tage im Monat. Beides sind Schätzungen, ohne Festpreis.
Reduzieren Sie technische Schulden, verbessern Sie die Skalierbarkeit und optimieren Sie Ihre PHP-Anwendung nachhaltig mit professionellem PHP Refactoring.
Wir updaten alle PHP Projekte auf Version 8 ✅ schnell ✅ kostengünstig ✅ einfach - von Deutschlands führenden Rector Experten - Workshop inklusive