# Trunçgil Multi-PHP & MySQL Server (Electron) Uygulama Planı Bu plan, Windows platformu öncelikli olmak üzere, Laragon veya XAMPP benzeri, Electron tabanlı modern bir arayüze sahip ve çoklu PHP/MySQL sürümlerini destekleyen bir geliştirme sunucusu uygulamasının yapımını kapsar. ## Temel Hedefler ### 1. Servis Yönetimi - [ ] **Çoklu PHP Desteği**: Kullanıcının istediği PHP sürümünü seçip anında aktif edebilmesi. - [ ] **MySQL/MariaDB Yönetimi**: Veritabanı servisinin uygulama içinden yönetimi. - [ ] **Nginx Entegrasyonu**: Yüksek performanslı web sunucusu yapılandırması. - [ ] **Dinamik İndirme (Download Manager)**: Gerekli servis bileşenlerinin (PHP, MySQL, Nginx) uygulama içinden indirilebilmesi. ### 2. Kullanıcı Deneyimi ve Arayüz - [ ] **Material UI (MUI)**: Premium, modern ve standart bir görünüm. - [ ] **Sistem Tepsisi (Tray)**: Uygulamanın arka planda çalışarak servisleri yönetmeye devam etmesi. - [ ] **Çoklu Dil Desteği (i18n)**: Türkçe, İngilizce ve Almanca dil seçenekleri. - [ ] **Otomatik Sürüm Algılama**: `composer.json` analizi ile projeye uygun PHP sürümünü otomatik tespit etme. ### 3. Gelişmiş Özellikler - [ ] **VHost & Alias Yönetimi**: Özel domain ve dizin eşlemeleri. - [ ] **Proje Bazlı Yönetim**: Her proje için özel PHP/MySQL sürümü atayabilme. - [ ] **Windows Servis Entegrasyonu**: Servislerin opsiyonel olarak arka plan servisi olarak kurulması. --- ## Teknik Mimari (2026 Standartları) ### 1. Teknoloji Yığını - **Dil**: TypeScript (Uçtan uca tip güvenliği). - **Build Aracı**: [electron-vite](https://electron-vite.org/) (Hızlı derleme ve modern süreç yönetimi). - **Frontend Framework**: **React** (MUI ile tam uyum için). - **UI Kütüphanesi**: Material UI (MUI) v6+. - **Paketleme**: Electron Forge & Electron Updater. ### 2. Güvenlik ve İletişim (Security-First) - **İzolasyon**: `contextIsolation: true` ve `sandbox: true` yapılandırması. - **Preload Scripts**: Renderer ve Main süreçleri arasındaki yegane güvenli köprü. - **IPC Service Layer**: Tüm sistem işlemleri (dosya yazma, servis yönetimi) asenkron IPC handler'lar üzerinden yürütülecek. ### 3. Platform Stratejisi (Strategy Pattern) İşletim sistemine özel işlemler (servis başlatma, hosts düzenleme) için bir `OSOperations` interface'i kullanılacaktır: - **Windows**: `sc.exe`, `winsw` ve `sudo-prompt` kullanımı. - **Linux/macOS**: `systemd`, `launchd` ve `sudo` entegrasyonu. - **Dosya Yolları**: Tüm platformlarda uyum için `path.join()` ve `os.EOL` kullanımı. --- ## Klasör Yapısı (Proposed) ``` multiphp/ ├── locales/ # i18n JSON dosyaları (tr.json, en.json, de.json) ├── src/ │ ├── main/ # Ana süreç (Services, IPC Handlers, Tray) │ │ ├── services/ # ProcessManager, DownloadService, ConfigService │ │ └── ipc/ # IPC Event Handlers │ ├── preload/ # ContextBridge tanımları │ ├── renderer/ # React UI (Components, Hooks, Pages) │ └── shared/ # Ortak tipler, interface'ler ve sabitler ├── bin/ # İndirilen portable binary'ler ├── config/ # Servis konfigürasyon şablonları (nginx.conf, php.ini) ├── resources/ # Statik varlıklar (Logolar, ikonlar) └── package.json ``` --- ## Doğrulama ve Test Planı ### Otomatik Testler - **Unit Tests**: `vitest` ile servis mantığının ve config jeneratörlerinin testi. - **IPC Tests**: Main ve Renderer arasındaki iletişimin doğrulanması. ### Manuel Doğrulama Adımları 1. **Servis İzolasyonu**: Birden fazla PHP sürümünün çakışmadan çalıştığının doğrulanması. 2. **Güvenlik Kontrolü**: Renderer sürecinden doğrudan `fs` veya `child_process` erişiminin engellendiğinin teyidi. 3. **Tray Fonksiyonelliği**: Uygulama kapatıldığında servislerin tray üzerinden yönetilebildiğinin kontrolü. 4. **i18n Doğrulaması**: Dil değişikliğinin tüm arayüzde (ana ekran, menüler, tray) anında yansıması. --- ## Kurumsal Kimlik - **Renk Paleti**: `#153E5E` (Ana), `#4A7CA3` (İkincil). - **Logo**: `logo/truncgil-multiphp-server.svg`