# Paket Uyum Matrisi

*EGT-17 çıktısı — 25.07.2026. AD-01'in "kurulumda ekosistem paketlerinin Laravel 13 uyumlu sürümleri pinlenip teyit edilecek" notunun karşılığı.*

**Yöntem:** sürümler bellekten yazılmadı; her paket gerçek `composer` çözümüyle kuruldu. Kesin pin `composer.lock`'tadır — bu tablo karar kaydıdır.

## Çalışma ortamı

| | Sürüm | Kanıt |
|---|---|---|
| PHP (dev + build agent) | **8.5.8** | `php -v` her iki makinada |
| Composer | 2.10.2 | `composer --version` |
| Laravel Framework | **13.22.0** | `php artisan --version` |
| Docker / Compose | 29.6.2 / v5.3.1 | `docker version` |

## Üretim bağımlılıkları

| Paket | Çözülen sürüm | Notu |
|---|---|---|
| `laravel/framework` | 13.22.0 | PHP ^8.3 gerektirir → 8.5 uyumlu |
| `filament/filament` | **5.7.3** | Backoffice paneli (AD-09) |
| `spatie/laravel-permission` | 8.3.0 | Rol/yetki temeli (AD-23) |
| `owen-it/laravel-auditing` | 14.0.6 | Audit temeli (AD-06/AD-21) — erişim logu ve damgalama üzerine inşa edilecek |
| `laravel/reverb` | 1.11.0 | Realtime (AD-22) |
| `laravel/horizon` | 5.48.1 | Kuyruk (AD-10) |
| `inertiajs/inertia-laravel` | 3.1.1 | Beş panel (AD-09) |
| `tightenco/ziggy` | 2.6.3 | Route'ların Vue tarafına aktarımı |
| `sentry/sentry-laravel` | 4.27.0 | Hata izleme |
| `league/flysystem-aws-s3-v3` | 3.35.2 | S3-uyumlu depolama (AD-11) |

## Geliştirme bağımlılıkları

| Paket | Çözülen sürüm | Notu |
|---|---|---|
| `pestphp/pest` | **4.7.5** | Test çatısı (AD-26) |
| `pestphp/pest-plugin-laravel` | 4.1.0 | |
| `pestphp/pest-plugin-browser` | 4.3.1 | UI akış testleri — Dusk yerine |
| `pestphp/pest-plugin-arch` | 4.0.2 | **Kod yerleşimi zorlaması (AD-25)** — Pest ile birlikte gelir |
| `larastan/larastan` | 3.10.0 | Statik analiz |
| `phpunit/phpunit` | **12.5.30 (pinli)** | Aşağıdaki nota bakın |
| `laravel/pint` | 1.29.3 | |

## Dikkat edilecek tek nokta: `laravel/pao` ↔ Pest ↔ PHPUnit

Laravel 13 skeleton'ı `laravel/pao` (agent-optimized test çıktısı) ile geliyor ve şu çakışma kısıtlarını taşıyor:

```
"conflict": {
  "phpunit/phpunit": "<12.5.23 || >=13.0.0 <13.1.7 || >=14.0.0",
  "pestphp/pest": "<4.6.3 || >=6.0.0"
}
```

Pest 4.7.5 ise `phpunit/phpunit >12.5.30` ile çakışıyor. Skeleton varsayılan olarak phpunit 12.5.31 kuruyor, bu yüzden `composer require pestphp/pest` **düz haliyle çözülemiyor**. Çözüm: `-W` (`--with-all-dependencies`) ile kurmak → composer phpunit'i 12.5.30'a indiriyor ve çakışma kalkıyor.

**Sonuç:** `composer.lock` phpunit'i 12.5.30'a sabitliyor. PHPUnit'i elle yükseltmeyin — Pest kırılır. Yükseltme gerektiğinde Pest ve pao sürümleri birlikte değerlendirilir.

## Bilinçli olarak kullanılmayanlar

- **Tenancy paketi (stancl/tenancy vb.) YOK.** AD-02 tek veritabanı + `tenant_id`, AD-03 PostgreSQL RLS diyor. Tenant context'i AD-04 gereği transaction içinde `SET LOCAL` ile set edilecek — bu zaten kendi middleware'imizi gerektiriyor. Hazır paket bu modele değer katmadan bağımlılık ekler.
- **Laravel Dusk YOK.** UI akış testleri Pest v4 browser plugin'i ile yazılır (AD-26).
- **predis YOK.** `ext-redis` (phpredis) hem dev makinada hem build agent'ta kurulu; `REDIS_CLIENT=phpredis`.
