4.2 KiB
4.2 KiB
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.jsonanalizi 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 (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: truevesandbox: trueyapı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,winswvesudo-promptkullanımı. - Linux/macOS:
systemd,launchdvesudoentegrasyonu. - Dosya Yolları: Tüm platformlarda uyum için
path.join()veos.EOLkullanı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:
vitestile 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ı
- Servis İzolasyonu: Birden fazla PHP sürümünün çakışmadan çalıştığının doğrulanması.
- Güvenlik Kontrolü: Renderer sürecinden doğrudan
fsveyachild_processerişiminin engellendiğinin teyidi. - Tray Fonksiyonelliği: Uygulama kapatıldığında servislerin tray üzerinden yönetilebildiğinin kontrolü.
- 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