Steuerkram/CLAUDE.md

1.9 KiB
Raw Blame History

Steuerkram – Entwicklungsregeln

Tech Stack

PHP 8.3+, MySQL, PSR-4 (Namespace Steuerkram\), Composer, kein Framework. MVC: src/Controllers/, src/Models/, src/Services/, src/Views/.

Coding-Regeln

  • Kein var_dump, kein die() in Produktionscode.
  • Neue Libraries nur nach expliziter Rückfrage einbinden.
  • Bestehenden Code-Stil beibehalten (declare strict_types, 4 Spaces).
  • SQL ausschließlich über Database::fetchAll/fetchOne/execute() mit Prepared Statements.

Tests

Regel: Jedes neue Feature bekommt einen eigenen Test.

Tests liegen in tests/ und folgen dem Namensschema NN_FunktionsnameTest.php. Jede Testklasse erweitert TestCase und implementiert run().

php tests/run.php           # alle Tests ausführen
./scripts/run-tests.sh      # Tests + automatische Issue-Erstellung bei Fehlern
./scripts/run-tests.sh 42   # Tests; bei Fehlern Kommentar in Issue #42

Neuen Test erstellen

  1. Datei tests/NN_MeinFeatureTest.php anlegen (NN = nächste freie Nummer)
  2. Klasse MeinFeatureTest extends TestCase
  3. protected string $testName = 'Test NN: Beschreibung';
  4. Methode public function run(): void mit Assertions implementieren
  5. Transaktions-Isolation ist automatisch (setUp/tearDown in TestCase)

Assertion-Methoden

$this->assert(bool, 'Beschreibung');
$this->assertEquals($erwartet, $ist, 'Beschreibung');
$this->assertGreaterThan($min, $wert, 'Beschreibung');
$this->assertNotEmpty($wert, 'Beschreibung');

Dokumentation aktuell halten

Datei Wann aktualisieren
Changes.md Bei jedem Feature, Bugfix oder strukturellen Änderung (nicht bei reinen Test- oder Doku-Commits)
README.md Wenn sich der Funktionsumfang, Tech Stack oder die Installationsanleitung ändert

Commits

Fix #NR: Kurze Beschreibung der Änderung

Keine Co-Authored-By-Zeile. Keine langen Commit-Messages.