# Laravel Octane — Phase 5 Hazırlık Notu

## Octane Nedir?

Laravel Octane, uygulamayı **bir kez bootlar**, ardından her HTTP isteğini aynı uzun ömürlü process içinde işler. Bootstrap maliyeti ortadan kalktığı için throughput 2–10x artabilir.

Desteklenen runtime'lar:

| Runtime       | Açıklama                                            |
|---------------|-----------------------------------------------------|
| **RoadRunner** | Go tabanlı, düşük bellek, gzip yerel desteği        |
| **Swoole**     | C extension, en yüksek performans, PECL gerektirir  |
| **FrankenPHP** | Caddy + PHP modülü; HTTP/3 + otomatik TLS dahil     |

## Neden Henüz Etkinleştirilmedi?

1. **Global state riski** — Singleton service'lerde, middleware'lerde veya statik değişkenlerde tutulan durum istekler arasında sızabilir.
2. **Bellek sızıntısı** — Her istek sonrası GC çalışmaz; uzun süre çalışan worker'lar şişebilir.
3. **Test kapsamı** — Octane uyumluluğu için tüm middleware, event subscriber ve job sınıflarının `Terminable` / `ShouldBeUnique` uyumluluğu doğrulanmalı.

## Phase 5 Etkinleştirme Adımları

```bash
# 1. Paketi yükle
composer require laravel/octane

# 2. Kurulum sihirbazı (RoadRunner önerilir; Swoole ext yoksa)
php artisan octane:install --server=roadrunner

# 3. Yapılandırmayı yayımla
php artisan vendor:publish --provider="Laravel\Octane\OctaneServiceProvider"
```

### `config/octane.php` önerilen ayarlar

```php
'workers'     => env('OCTANE_WORKERS', 4),      // CPU çekirdeği × 1.5
'max_requests' => env('OCTANE_MAX_REQUESTS', 500), // Bellek sıfırlama eşiği
'server'      => env('OCTANE_SERVER', 'roadrunner'),
```

### Kaçınılması Gereken Desenler

```php
// YANLIŞ — statik property istek kirlenmesine neden olur
class MyService {
    private static array $cache = [];
}

// DOĞRU — request-scoped DI
class MyService {
    public function __construct(private readonly Request $request) {}
}
```

## Beklenen Kazanım (tahmin)

| Senaryo                      | PHP-FPM (baseline) | Octane/RoadRunner |
|------------------------------|--------------------|-------------------|
| Admin dashboard (cold)       | ~120 ms            | ~15–25 ms         |
| API token doğrulama          | ~40 ms             | ~5–8 ms           |
| Audit log listesi (cached)   | ~25 ms             | ~4–6 ms           |

> Değerler `onox:benchmark` çıktısına göre güncellenecek.

## Referanslar

- https://laravel.com/docs/octane
- https://roadrunner.dev/docs
- https://frankenphp.dev
