Proje: Okul Platform · Hub: Okul Platform — Conventions

Laravel Pint (Code Style)

pint.json — PSR-12 preset üzerine özelleştirmeler:

  • not_operator_with_successor_space: false!$x yerine ! $x yazılmıyor
  • braces_position: true — Brace konumu kuralı
  • single_line_empty_body: true — Boş body tek satır
  • trailing_comma_in_multiline — arguments, arrays, match, parameters
  • concat_space: one — String concat’te boşluk
  • trim_array_spaces: true

Çalıştırma: ./vendor/bin/pint --test (CI) veya ./vendor/bin/pint (düzelt)

PHPStan (Static Analysis)

Level: 5 (9 maksimum)
Extension’lar: Larastan + Carbon extension

Analiz Edilen Dizinler

  • app/, config/, database/migrations|seeders|traits/, routes/
  • constants.php, bootstrap/app.php, bootstrap/providers.php
  • CustomerIO/Objects/, CustomerIO/Client.php
  • packages/

Hariç Tutulanlar

  • app/Swagger/*, app/Overrides/*, packages/Okul/PHPStan/*

Universal Object Craters

Illuminate\Http\Resources\Json\JsonResource — Dynamic property erişimine izin ver

Custom PHPStan Rules (packages/Okul/PHPStan/Rules/)

ForbiddenDebugCodeRule

Debug/güvensiz kodların production’a çıkmasını engeller. Yasaklanan fonksiyonlar: var_dump, dd, dump, sleep, exit, die, echo, print, goto Bilinçli kullanım için: // @phpstan-ignore-next-line

StrictTypesDeclarationRule

Her PHP dosyasında declare(strict_types=1); zorunlu. Bu yüzden kod tabanındaki çoğu dosyada declare(strict_types=1) var.

CI Komutu (commit mesajından)

style: apply Laravel Pint formatting — Otomatik formatlama commit’i