From 0a67fda21125e4a01e33d5c593dc5fbc858ba64f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Thu, 2 Apr 2026 17:16:52 +0300 Subject: [PATCH] feat: implement user guide documentation in multiple languages and add IPC infrastructure for UI components --- docs/user-guide/README.md | 20 ++ docs/user-guide/de/database.md | 46 +++ docs/user-guide/de/index.md | 39 +++ docs/user-guide/de/php.md | 43 +++ docs/user-guide/de/projects.md | 42 +++ docs/user-guide/de/settings.md | 43 +++ docs/user-guide/de/tools.md | 45 +++ docs/user-guide/de/troubleshooting.md | 46 +++ docs/user-guide/de/web-servers.md | 40 +++ docs/user-guide/en/database.md | 46 +++ docs/user-guide/en/index.md | 39 +++ docs/user-guide/en/php.md | 43 +++ docs/user-guide/en/projects.md | 42 +++ docs/user-guide/en/settings.md | 43 +++ docs/user-guide/en/tools.md | 45 +++ docs/user-guide/en/troubleshooting.md | 46 +++ docs/user-guide/en/web-servers.md | 40 +++ docs/user-guide/tr/database.md | 46 +++ docs/user-guide/tr/index.md | 39 +++ docs/user-guide/tr/php.md | 43 +++ docs/user-guide/tr/projects.md | 42 +++ docs/user-guide/tr/settings.md | 43 +++ docs/user-guide/tr/tools.md | 45 +++ docs/user-guide/tr/troubleshooting.md | 46 +++ docs/user-guide/tr/web-servers.md | 40 +++ service_events.json | 112 +++++++ src/main/ipc/index.ts | 70 ++++- src/renderer/src/App.tsx | 11 +- src/renderer/src/components/UserGuide.tsx | 355 ++++++++++++++++++++++ src/renderer/src/locales/de.json | 1 + src/renderer/src/locales/en.json | 1 + src/renderer/src/locales/tr.json | 1 + 32 files changed, 1594 insertions(+), 9 deletions(-) create mode 100644 docs/user-guide/README.md create mode 100644 docs/user-guide/de/database.md create mode 100644 docs/user-guide/de/index.md create mode 100644 docs/user-guide/de/php.md create mode 100644 docs/user-guide/de/projects.md create mode 100644 docs/user-guide/de/settings.md create mode 100644 docs/user-guide/de/tools.md create mode 100644 docs/user-guide/de/troubleshooting.md create mode 100644 docs/user-guide/de/web-servers.md create mode 100644 docs/user-guide/en/database.md create mode 100644 docs/user-guide/en/index.md create mode 100644 docs/user-guide/en/php.md create mode 100644 docs/user-guide/en/projects.md create mode 100644 docs/user-guide/en/settings.md create mode 100644 docs/user-guide/en/tools.md create mode 100644 docs/user-guide/en/troubleshooting.md create mode 100644 docs/user-guide/en/web-servers.md create mode 100644 docs/user-guide/tr/database.md create mode 100644 docs/user-guide/tr/index.md create mode 100644 docs/user-guide/tr/php.md create mode 100644 docs/user-guide/tr/projects.md create mode 100644 docs/user-guide/tr/settings.md create mode 100644 docs/user-guide/tr/tools.md create mode 100644 docs/user-guide/tr/troubleshooting.md create mode 100644 docs/user-guide/tr/web-servers.md create mode 100644 src/renderer/src/components/UserGuide.tsx diff --git a/docs/user-guide/README.md b/docs/user-guide/README.md new file mode 100644 index 0000000..fdd7acb --- /dev/null +++ b/docs/user-guide/README.md @@ -0,0 +1,20 @@ +# Multi-PHP User Guide / Kullanım Kılavuzu / Benutzerhandbuch + +Welcome to the official Multi-PHP documentation. Please select your preferred language to continue. + +Multi-PHP resmi dokümantasyonuna hoş geldiniz. Devam etmek için lütfen tercih ettiğiniz dili seçin. + +Willkommen zur offiziellen Multi-PHP-Dokumentation. Bitte wählen Sie Ihre bevorzugte Sprache aus, um fortzufahren. + +--- + +### 🌐 Select Language / Dil Seçin / Sprache wählen + +- [**English (EN)**](./en/index.md) - Official documentation in English. +- [**Türkçe (TR)**](./tr/index.md) - Türkçe kullanım kılavuzu. +- [**Deutsch (DE)**](./de/index.md) - Benutzerhandbuch auf Deutsch. + +--- + +> [!TIP] +> Multi-PHP is designed to provide a seamless local development environment with multiple PHP, MariaDB, and web server versions. diff --git a/docs/user-guide/de/database.md b/docs/user-guide/de/database.md new file mode 100644 index 0000000..c3e3482 --- /dev/null +++ b/docs/user-guide/de/database.md @@ -0,0 +1,46 @@ +# MariaDB Datenbankverwaltung + +Multi-PHP bietet ein umfassendes Toolset zur Verwaltung von MariaDB-Datenbanken, von GUI-basierten Assistenten bis hin zur tiefen Prozessüberwachung. + +--- + +## 📊 Datenbank- & Benutzerverwaltung + +Multi-PHP bietet Ihnen einfachen Zugriff auf das Erstellen und Verwalten von MySQL/MariaDB-Datenbanken und Benutzern: + +- **Datenbank erstellen**: Erstellen Sie schnell eine neue Datenbank mit eigenem Namen. +- **Benutzer verwalten**: Erstellen Sie neue Datenbankbenutzer, setzen Sie Passwörter und verwalten Sie Berechtigungen. +- **Datenbanken auflisten**: Zeigen Sie alle vorhandenen Datenbanken und deren Nutzungsstatistiken an. + +--- + +## 🧙 MariaDB Import- & Export-Assistenten + +Unsere intelligenten Assistenten nehmen die Komplexität aus dem Verschieben von Daten: + +### **Import-Assistent (SQL/Archiv)** +- Wählen Sie eine `.sql`-, `.zip`- oder `.sql.gz`-Datei aus. +- Wählen Sie Ihren Ziel-MariaDB-Server und Ihre Datenbank aus. +- Multi-PHP erledigt den Rest, entpackt Dateien automatisch und importiert Daten in die gewählte DB. + +### **Export-Assistent (Backup)** +- Wählen Sie die Datenbank aus, die Sie exportieren möchten. +- Wählen Sie aus, ob Sie die Datei mit Gzip (`.gz`) komprimieren möchten. +- Speichern Sie die Datei an Ihrem gewünschten Ort. + +--- + +## 🕒 MariaDB Prozessmonitor + +Überwachen Sie die Aktivität Ihrer Datenbank in Echtzeit. Unser Prozessmonitor zeigt: +- **Aktive Verbindungen**: Wer ist aktuell mit der Datenbank verbunden. +- **SQL-Abfragen**: Das genaue SQL, das ausgeführt wird, und wie lange es dauert. +- **Prozesse abbrechen**: Beenden Sie hängende oder problematische Datenbankverbindungen sofort. + +> [!TIP] +> Benötigen Sie ein traditionelleres webbasiertes Interface? Gehen Sie zum Menü **"Tools"** und installieren Sie **phpMyAdmin** mit nur einem Klick. + +### 📖 Nächste Schritte +- [Lernen Sie, wie Sie Nginx & Apache Server verwalten](./web-servers.md) +- [CLI und Systemintegration verwalten](./settings.md) +- [Fehlerbehebung bei häufigen Problemen](./troubleshooting.md) diff --git a/docs/user-guide/de/index.md b/docs/user-guide/de/index.md new file mode 100644 index 0000000..246ee4d --- /dev/null +++ b/docs/user-guide/de/index.md @@ -0,0 +1,39 @@ +# Einführung & Schnellstart + +Willkommen bei **Multi-PHP**, der All-in-One-lokalen Entwicklungsumgebung für Windows. Diese Anleitung führt Sie durch die ersten Schritte und hilft Ihnen dabei, Ihre Umgebung einzurichten und in Betrieb zu nehmen. + +--- + +## 🚀 Schnellstart + +Folgen Sie diesen Schritten, um mit Ihrem ersten PHP-Projekt zu beginnen: + +1. **Multi-PHP starten**: Öffnen Sie die Anwendung von Ihrem Desktop oder dem Startmenü aus. +2. **Dashboard-Übersicht**: Beim ersten Start sehen Sie das Dashboard. Dies ist Ihre Zentrale für alle Dienste. +3. **PHP herunterladen**: Gehen Sie zu `Einstellungen > PHP-Versionen` und laden Sie mindestens eine PHP-Version (z. B. PHP 8.3) herunter. +4. **Dienste starten**: Klicken Sie auf die Schaltfläche **"Alle starten"** im Dashboard, um Nginx/Apache und MariaDB zu starten. +5. **Projekt erstellen**: Navigieren Sie zum Tab **"Meine Projekte"** und fügen Sie Ihren ersten Projektordner hinzu. + +--- + +## 🏢 Kernkomponenten + +Multi-PHP bündelt mehrere wichtige Werkzeuge für die moderne Webentwicklung: + +| Komponente | Beschreibung | +| :--- | :--- | +| **PHP-FPM** | Hochleistungs-FastCGI-Prozessmanager für PHP. | +| **Nginx** | Moderner, leichtgewichtiger und schneller Webserver. | +| **Apache** | Robuster, traditioneller Webserver mit Unterstützung für `.htaccess`. | +| **MariaDB** | Der von der Community entwickelte, kommerziell unterstützte Fork von MySQL. | +| **phpMyAdmin** | Web-Interface für einfaches Datenbankmanagement. | + +--- + +> [!IMPORTANT] +> Einige Dienste können möglicherweise nicht gestartet werden, wenn ihre Standard-Ports (80, 3306) bereits von anderen Anwendungen (wie Skype oder einer anderen XAMPP-Installation) belegt sind. Überprüfen Sie die **"Einstellungen"**, um diese Ports bei Bedarf zu ändern. + +### 📖 Nächste Schritte +- [Lernen Sie, wie Sie Projekte verwalten](./projects.md) +- [PHP-Versionen und Erweiterungen konfigurieren](./php.md) +- [MariaDB-Datenbanken verwalten](./database.md) diff --git a/docs/user-guide/de/php.md b/docs/user-guide/de/php.md new file mode 100644 index 0000000..d8146ca --- /dev/null +++ b/docs/user-guide/de/php.md @@ -0,0 +1,43 @@ +# Verwaltung von PHP-Versionen & Erweiterungen + +Multi-PHP macht es einfach, verschiedene PHP-Umgebungen für Ihre Projekte zu wechseln, zu konfigurieren und zu verwalten. + +--- + +## 🔩 PHP-Versionen verwalten + +Navigieren Sie zu `Einstellungen > PHP-Versionen`, um PHP-Versionen herunterzuladen, auszuwählen und zu verwalten. + +- **Verfügbare Versionen**: Liste aller PHP-Versionen, die zum Download bereitstehen. +- **Heruntergeladene Versionen**: Versionen, die bereits auf Ihrem System vorhanden sind. +- **Standard-Version**: Die globale PHP-Version, die normalerweise für CLI verwendet wird (z. B. in einem Terminal). +- **Neustart-Verzögerung**: Multi-PHP startet PHP-FPM automatisch neu, wenn Einstellungen geändert werden. + +--- + +## 🛠️ PHP-Erweiterungsmanager + +Jede PHP-Version in Multi-PHP wird mit ihrem eigenen Erweiterungsmanager geliefert. Sie müssen die `php.ini` für gängige Aufgaben nicht mehr manuell bearbeiten. + +### Verwendung des Managers: +1. **Erweiterung auswählen**: Finden Sie Ihre gewünschte Erweiterung (z. B. `mysql`, `gd`, `zip`). +2. **Umschalten**: Klicken Sie, um die Erweiterung zu aktivieren oder zu deaktivieren. +3. **Anwenden**: Multi-PHP wird die `php.ini`-Datei für Sie aktualisieren und den Dienst der Version automatisch neu starten. + +--- + +## 📝 Manuelle Bearbeitung der `php.ini` + +Wenn Sie mehr Kontrolle über Ihre PHP-Konfiguration benötigen, verwenden Sie den integrierten **RAW EDITOR**. + +1. **Editor öffnen**: Greifen Sie über die Schaltfläche im Erweiterungsfenster auf den Editor zu. +2. **Speichern & Neustarten**: Klicken Sie auf "Speichern und Neustarten", um Änderungen sofort anzuwenden. +3. **Suchen & Ersetzen**: Verwenden Sie die Suchfunktion, um spezifische Variablen wie `memory_limit` oder `max_execution_time` zu finden. + +> [!TIP] +> Sie können auch das Werkzeug **"Server Tuning"** im Menü "Tools" verwenden, um gängige PHP-Leistungseinstellungen schnell anzupassen, ohne Code-Dateien manuell bearbeiten zu müssen. + +### 📖 Nächste Schritte +- [Lernen Sie, wie Sie MariaDB-Datenbanken verwalten](./database.md) +- [Webserver konfigurieren](./web-servers.md) +- [Systemintegration](./settings.md) diff --git a/docs/user-guide/de/projects.md b/docs/user-guide/de/projects.md new file mode 100644 index 0000000..c9278da --- /dev/null +++ b/docs/user-guide/de/projects.md @@ -0,0 +1,42 @@ +# Virtuelle Hosts & Projektmanagement + +Die Verwaltung Ihrer lokalen PHP-Projekte in Multi-PHP ist einfach und effektiv. Unsere Plattform übernimmt automatisch die Konfiguration der virtuellen Hosts für Sie. + +--- + +## 🏗️ Ihr erstes Projekt hinzufügen + +Um ein neues Projekt hinzuzufügen, navigieren Sie zum Tab **"Meine Projekte"** und klicken Sie auf die Schaltfläche **"Neues Projekt hinzufügen"**. + +### Zu füllende Felder: +- **Projektname**: Ein aussagekräftiger Name für Ihr lokales Projekt. +- **Projektpfad**: Der absolute Pfad zu Ihrem Projektordner. +- **Host / Domain**: Die zu verwendende lokale Domain (z.B. `test-site.local`). +- **PHP-Version**: Wählen Sie, welche PHP-FPM-Version dieses Projekt ausführen soll. +- **MariaDB-Version**: Wählen Sie die MariaDB-Version aus (Standard: Aktuellste). +- **Servertyp**: Entscheiden Sie sich zwischen **Nginx** (Modern, Hochleistung) oder **Apache** (Unterstützt `.htaccess`). + +--- + +## 🛠️ Projekte verwalten + +Jedes Projekt in Ihrer Liste hat eine Reihe von Aktionen: +1. **Dateisystem durchsuchen**: Öffnen Sie schnell Ihren Projektordner. +2. **Im Browser öffnen**: Öffnen Sie Ihre lokale Domain in Ihrem Standardbrowser. +3. **Server konfigurieren**: Bearbeiten Sie spezifische Nginx/Apache-Konfigurationen nur für dieses Projekt. +4. **Projekteinstellungen bearbeiten**: Ändern Sie PHP-Version, Servertyp oder Projektpfade. +5. **Projekt löschen**: Entfernen Sie es aus der Liste (Dateien werden nicht gelöscht). + +--- + +## 🌐 Automatische virtuelle Hosts + +Das Konfigurationsmodul von Multi-PHP generiert automatisch die erforderlichen Dateien für die virtuellen Hosts von Nginx und Apache. Wenn Sie die Dienste starten, sind alle Ihre lokalen Domains bekannt. + +> [!WARNING] +> Sie müssen möglicherweise die **`hosts`**-Datei Ihres Systems manuell bearbeiten, wenn Sie benutzerdefinierte Domains wie `.local` oder `.dev` verwenden. Multi-PHP versucht sein Bestes, dies zu verwalten, aber einige Systemberechtigungen erfordern möglicherweise manuelles Eingreifen. + +### 📖 Nächste Schritte +- [PHP-Versionen und Erweiterungen konfigurieren](./php.md) +- [MariaDB-Datenbanken verwalten](./database.md) +- [Systemintegration](./settings.md) diff --git a/docs/user-guide/de/settings.md b/docs/user-guide/de/settings.md new file mode 100644 index 0000000..d295d9d --- /dev/null +++ b/docs/user-guide/de/settings.md @@ -0,0 +1,43 @@ +# Systemeinstellungen & CLI-Integration + +Multi-PHP bietet eine robuste Möglichkeit, Ihre lokale Entwicklungsumgebung direkt in die Befehlszeile Ihres Betriebssystems zu integrieren. + +--- + +## 💻 CLI & System-PATH-Integration + +Greifen Sie direkt von jedem Terminalfenster (CMD, PowerShell) auf Ihre PHP- und MariaDB-Binärdateien zu. + +### CLI-Zugriff einrichten: +1. Navigieren Sie zu `Einstellungen > CLI & Umgebungsvariablen`. +2. Aktivieren Sie die **"System-PATH-Integration"**. +3. Wählen Sie Ihre **"Standard-PHP-Version"** (das ist die Version, die ausgeführt wird, wenn Sie `php` in ein Terminal eingeben). +4. Wählen Sie Ihre **"Standard-MariaDB-Version"** (für die Befehle `mysql` und `mariadb`). +5. Klicken Sie auf **"Befehle synchronisieren"**, um Änderungen zu übernehmen. + +### Generierte Befehle (Aliase): +Multi-PHP erstellt und verwaltet automatisch versionsspezifische Befehle für Sie: +- `php83`: Löst das PHP 8.3-Binary aus. +- `php74`: Löst das PHP 7.4-Binary aus. +- `mysql`: Löst den Standard-MariaDB-Client aus. + +--- + +## 🛰️ Port-Management & Fernzugriff + +Jeder Web- und Datenbankserver hat seine eigenen Port-Einstellungen in `Einstellungen > Allgemein`. + +- **Nginx- & Apache-Ports**: Standardmäßig 80, kann aber auf 8080 oder 8888 geändert werden. +- **MariaDB-Port**: Standardmäßig 3306. +- **PHP-FPM-Port**: Standardmäßig 9000. +- **Fernzugriff erlauben**: Wenn aktiviert, lauscht die Software auf `0.0.0.0`, sodass andere Geräte in Ihrem lokalen Netzwerk auf Ihre Entwicklungs-Websites zugreifen können. + +--- + +> [!WARNING] +> Sie müssen Ihre **Terminalfenster neu starten** (CMD, PowerShell), damit die PATH-Änderungen nach dem Klicken auf "Befehle synchronisieren" wirksam werden. + +### 📖 Nächste Schritte +- [Lernen Sie die Datenbankverwaltung kennen](./database.md) +- [Fortgeschrittene Systemwerkzeuge](./tools.md) +- [Fehlerbehebung bei häufigen Problemen](./troubleshooting.md) diff --git a/docs/user-guide/de/tools.md b/docs/user-guide/de/tools.md new file mode 100644 index 0000000..41b065b --- /dev/null +++ b/docs/user-guide/de/tools.md @@ -0,0 +1,45 @@ +# Erweiterte Werkzeuge & Überwachung + +Multi-PHP geht über die reine Bereitstellung von PHP-Projekten hinaus und bietet eine umfassende Palette an Diagnose- und Leistungsoptimierungswerkzeugen. + +--- + +## 🚦 Dienstprotokolle & Aktivitätsverfolgung + +Greifen Sie im Menü **"Dienst-Log"** auf Live- und Verlaufs-Protokolle für alle Dienste zu. + +### Protokollierte Ereignisse: +- **Dienststarts/-stopps**: Sehen Sie genau, wann jeder Server gestartet oder gestoppt wurde. +- **Dienstfehler**: Erhalten Sie detaillierte Fehlermeldungen, wenn ein Dienst abstürzt oder nicht startet. +- **Aktivitätsdiagramm**: Eine visuelle Darstellung der Dienstverfügbarkeit im Zeitverlauf. +- **Ereignis-Protokoll**: Ein detaillierter, zeilenweiser Verlauf jeder dienstbezogenen Aktion. + +--- + +## 🎛️ Servertuning & Leistung + +Optimieren Sie Ihre Umgebung mit **"Servertuning"** für verschiedene Arten von Entwicklungsaufgaben. + +### Änderbare Parameter: +- **PHP-Gesamtspeicher**: Erhöhen Sie den `memory_limit` für ressourcenintensive Skripte. +- **Max. Ausführungszeit**: Ermöglichen Sie langwierige lokale Operationen. +- **Max. Upload-Größe**: Erhöhen Sie Dateigrößenlimits für Formulare. +- **MariaDB-Verbindungen**: Legen Sie Concurrent-Client-Limits fest. +- **InnoDB-Pufferpool**: Passen Sie die Datenbankleistung basierend auf Ihrem System-RAM an. + +--- + +## 🗃️ phpMyAdmin-Installation + +Wenn Sie kein anderes Datenbank-GUI verwenden, bietet Multi-PHP eine Ein-Klick-Installation für **phpMyAdmin**. + +- **Schnellinstallation**: Multi-PHP lädt die neueste Version von phpMyAdmin automatisch herunter und konfiguriert sie. +- **Einfache Integration**: Zugänglich über Ihren virtuellen Host als `localhost/phpmyadmin` oder über eine spezielle "ÖFFNEN"-Schaltfläche. + +> [!TIP] +> Verwenden Sie die Schaltfläche **"Aktualisieren"**, um sicherzustellen, dass Sie die aktuellsten Dienstinformationen sehen. + +### 📖 Nächste Schritte +- [Fehlerbehebung bei häufigen Problemen](./troubleshooting.md) +- [Lernen Sie die MariaDB-Datenbankverwaltung kennen](./database.md) +- [PHP-Versionen und Erweiterungen konfigurieren](./php.md) diff --git a/docs/user-guide/de/troubleshooting.md b/docs/user-guide/de/troubleshooting.md new file mode 100644 index 0000000..b95e243 --- /dev/null +++ b/docs/user-guide/de/troubleshooting.md @@ -0,0 +1,46 @@ +# Fehlerbehebung & Häufig gestellte Fragen + +Häufige Probleme, auf die Sie bei der Verwendung von Multi-PHP stoßen könnten, und wie Sie diese beheben können. + +--- + +## 🚫 Dienst lässt sich nicht starten + +Dies wird oft durch **Port-Konflikte** mit anderer Software verursacht. + +- **Nginx & Apache (Port 80/443)**: Überprüfen Sie, ob Skype, IIS oder eine andere XAMPP/WAMP-Umgebung läuft und Port 80 verendet. +- **MariaDB (Port 3306)**: Überprüfen Sie, ob Sie eine bestehende MySQL- oder MariaDB-Installation haben, die bereits ausgeführt wird. +- **Lösung**: Gehen Sie zu `Einstellungen > Allgemein` und ändern Sie den betroffenen Port in etwas anderes (z. B. Nginx auf 8080 oder MariaDB auf 3307). + +--- + +## ❌ PHP-Fehler: "No input file specified" + +Dies bedeutet normalerweise, dass Nginx oder Apache die PHP-Dateien Ihres Projekts nicht finden kann. + +- **Projektpfad überprüfen**: Überprüfen Sie, ob der Projektpfad in "Meine Projekte" korrekt ist. +- **Abschließender Schrägstrich**: Stellen Sie sicher, dass Ihr Projektpfad nicht mit einem extra Schrägstrich endet, es sei denn, dies ist erforderlich. +- **Dienste neu starten**: Versuchen Sie, alle Dienste zu stoppen und erneut zu starten. + +--- + +## 🔒 403 Forbidden (Zugriff verweigert) + +Berechtigungs- oder Konfigurationsprobleme können den Zugriff auf Ihre lokale Website blockieren. + +- **Indexdatei fehlt**: Stellen Sie sicher, dass Ihr Projektordner eine `index.php` oder `index.html` enthält. +- **Nginx-Konfiguration**: Wenn Sie Nginx verwenden, überprüfen Sie die projektspezifische Konfiguration auf manuelle `deny`-Regeln. +- **Verzeichnisauflistung**: Standardmäßig erlaubt Multi-PHP die Verzeichnisauflistung. Wenn dies blockiert ist, müssen Sie eine Indexdatei haben. + +--- + +## 💻 CLI-Befehle (php, mysql) funktionieren nicht + +- **PATH nicht aktualisiert**: Sie müssen in den CLI-Einstellungen auf "Befehle synchronisieren" klicken. +- **Terminal-Fenster**: Schließen Sie Ihr Terminal (CMD, PowerShell) und öffnen Sie es erneut, damit die Änderungen wirksam werden. +- **Integration prüfen**: Stellen Sie sicher, dass der Schalter "System-PATH-Integration" auf EIN steht. + +--- + +> [!TIP] +> Wenn Sie weiterhin Probleme haben, überprüfen Sie die **"Dienst-Logs"** auf detaillierte Fehlermeldungen der PHP-, Nginx- oder MariaDB-Binärdateien. diff --git a/docs/user-guide/de/web-servers.md b/docs/user-guide/de/web-servers.md new file mode 100644 index 0000000..4dae196 --- /dev/null +++ b/docs/user-guide/de/web-servers.md @@ -0,0 +1,40 @@ +# Webserver: Nginx vs. Apache + +Multi-PHP lässt Sie den richtigen Webserver für jedes Ihrer Projekte auswählen oder einen globalen Standard festlegen. + +--- + +## 🌩️ Einen Webserver auswählen + +Sie können für jedes Ihrer Projekte in den **"Meine Projekte"**-Einstellungen zwischen Nginx und Apache wechseln. + +- **Nginx**: Leichtgewichtig, leistungsstark und Standard für die moderne Webentwicklung. +- **Apache**: Traditionell, robust und unterstützt nativ `.htaccess`-Dateien für fein abgestimmte Konfigurationen. + +--- + +## 🛠️ Globales Konfigurationsmanagement + +Jeder Server verfügt über eine eigene Hauptkonfigurationsdatei, in der Sie Ports, Worker-Prozesse und globale Einstellungen verwalten können. + +### Nginx-Konfiguration (`nginx.conf`) +- **Konfiguration testen**: Verwenden Sie die Schaltfläche "Konfiguration testen", um Ihre Änderungen zu überprüfen, ohne den Server neu zu starten. +- **Speichern & Neu laden**: Wenden Sie Konfigurationsänderungen sofort an. + +### Apache-Konfiguration (`httpd.conf`) +- **Hauptserver-Einstellungen**: Konfigurieren Sie globale Basisverzeichnisse, Modulaktivierungen und Standard-Ports. +- **HTAccess-Unterstützung**: Wenn Apache aktiv ist, liest er automatisch `.htaccess`-Dateien in Ihren Projektordnern. + +--- + +## 📁 Gemeinsame Server-Assets + +Multi-PHP bietet vorkonfigurierte, professionelle Designs für **Index von** (Verzeichnisauflistungen) und **Fehlerseiten** (404, 500). Diese sind sowohl in Nginx als auch in Apache konsistent. + +> [!WARNING] +> Das Bearbeiten globaler Konfigurationsdateien kann den Start Ihrer Server verhindern. Verwenden Sie immer das Werkzeug **"Konfiguration testen"**, bevor Sie Änderungen übernehmen. + +### 📖 Nächste Schritte +- [Lernen Sie, wie Sie CLI und Systemintegration verwalten](./settings.md) +- [Fortgeschrittene Systemwerkzeuge](./tools.md) +- [Fehlerbehebung bei häufigen Problemen](./troubleshooting.md) diff --git a/docs/user-guide/en/database.md b/docs/user-guide/en/database.md new file mode 100644 index 0000000..17db86a --- /dev/null +++ b/docs/user-guide/en/database.md @@ -0,0 +1,46 @@ +# MariaDB Database Management + +Multi-PHP provides a comprehensive toolset for managing MariaDB databases, from GUI-based wizards to deep process monitoring. + +--- + +## 📊 Database & User Management + +Multi-PHP gives you easy access to creating and managing MySQL/MariaDB databases and users: + +- **Create Database**: Quickly create a new database with its own name. +- **Manage Users**: Create new database users, set passwords, and manage permissions. +- **List Databases**: View all existing databases and their usage statistics. + +--- + +## 🧙 MariaDB Import & Export Wizards + +Our intelligent wizards take the complexity out of moving data: + +### **Import Wizard (SQL/Archive)** +- Select a `.sql`, `.zip`, or `.sql.gz` file. +- Choose your target MariaDB server and database. +- Multi-PHP handles the rest, automatically extracting files and importing data into the chosen DB. + +### **Export Wizard (Backup)** +- Select the database you want to export. +- Choose if you want to compress the file using Gzip (`.gz`). +- Save the file to your desired location. + +--- + +## 🕒 MariaDB Process Monitor + +Monitor your database's activity in real time. Our Process Monitor shows: +- **Active Connections**: Who is currently connected to the database. +- **SQL Queries**: The exact SQL being executed and how long it's taking. +- **Kill Processes**: Instantly terminate any stuck or problematic database connections. + +> [!TIP] +> Need a more traditional web-based interface? Go to the **"Tools"** menu and install **phpMyAdmin** with just one click. + +### 📖 Next Steps +- [Learn how to manage Nginx & Apache Servers](./web-servers.md) +- [Manage CLI and System Integration](./settings.md) +- [Troubleshooting Common Issues](./troubleshooting.md) diff --git a/docs/user-guide/en/index.md b/docs/user-guide/en/index.md new file mode 100644 index 0000000..540b729 --- /dev/null +++ b/docs/user-guide/en/index.md @@ -0,0 +1,39 @@ +# Introduction & Quick Start + +Welcome to **Multi-PHP**, the all-in-one local development environment for Windows. This guide will walk you through the first steps and help you get your environment up and running. + +--- + +## 🚀 Quick Start + +Follow these steps to get started with your first PHP project: + +1. **Launch Multi-PHP**: Open the application from your desktop or start menu. +2. **Dashboard Overview**: On your first launch, you'll see the Dashboard. This is your control center for all services. +3. **Download PHP**: Go to `Settings > PHP Versions` and download at least one PHP version (e.g., PHP 8.3). +4. **Start Services**: Click the **"Start All"** button on the Dashboard to launch Nginx/Apache and MariaDB. +5. **Create a Project**: Navigate to the **"My Projects"** tab and add your first project folder. + +--- + +## 🏢 Core Components + +Multi-PHP bundles several essential tools for modern web development: + +| Component | Description | +| :--- | :--- | +| **PHP-FPM** | High-performance FastCGI process manager for PHP. | +| **Nginx** | Modern, lightweight, and fast web server. | +| **Apache** | Robust, traditional web server with `.htaccess` support. | +| **MariaDB** | The community-developed, commercially supported fork of MySQL. | +| **phpMyAdmin** | Web interface for easy database management. | + +--- + +> [!IMPORTANT] +> Some services might fail to start if their default ports (80, 3306) are already being used by other applications (like Skype or another XAMPP installation). Check the **"Settings"** to change these ports if needed. + +### 📖 Next Steps +- [Learn how to manage Projects](./projects.md) +- [Configure PHP Versions & Extensions](./php.md) +- [Manage MariaDB Databases](./database.md) diff --git a/docs/user-guide/en/php.md b/docs/user-guide/en/php.md new file mode 100644 index 0000000..c9296df --- /dev/null +++ b/docs/user-guide/en/php.md @@ -0,0 +1,43 @@ +# PHP Versions & Extensions Management + +Multi-PHP makes it easy to switch, configure, and manage different PHP environments for your projects. + +--- + +## 🔩 Managing PHP Versions + +Navigate to `Settings > PHP Versions` to download, select, and manage multiple PHP versions. + +- **Available Versions**: List of all PHP versions available for download. +- **Downloaded Versions**: Versions already present on your system. +- **Default Version**: The global PHP version typically used for CLI (e.g., in a terminal). +- **Restart Delay**: Multi-PHP automatically restarts PHP-FPM when settings change. + +--- + +## 🛠️ PHP Extension Manager + +Every PHP version in Multi-PHP comes with its own extension manager. You don't need to manually edit `php.ini` for common tasks anymore. + +### Using the Manager: +1. **Select Extension**: Find your desired extension (e.g., `mysql`, `gd`, `zip`). +2. **Toggle**: Click to enable or disable the extension. +3. **Apply**: Multi-PHP will update the `php.ini` file for you and restart the version's service automatically. + +--- + +## 📝 Raw Editing of `php.ini` + +If you need fine-grained control over your PHP configuration, use the built-in **RAW EDITOR**. + +1. **Open Editor**: Access the editor button in the extensions window. +2. **Save & Restart**: Click "Save and Restart" to apply changes immediately. +3. **Search & Replace**: Use the search functionality to find specific variables like `memory_limit` or `max_execution_time`. + +> [!TIP] +> You can also use the **"Server Tuning"** tool under the "Tools" menu to quickly adjust common PHP performance settings without manually editing code files. + +### 📖 Next Steps +- [Learn how to manage MariaDB Databases](./database.md) +- [Configure Web Servers](./web-servers.md) +- [System Integration](./settings.md) diff --git a/docs/user-guide/en/projects.md b/docs/user-guide/en/projects.md new file mode 100644 index 0000000..ebe0dd7 --- /dev/null +++ b/docs/user-guide/en/projects.md @@ -0,0 +1,42 @@ +# Virtual Hosts & Project Management + +Managing your local PHP projects in Multi-PHP is simple and effective. Our platform automatically handles virtual host configuration for you. + +--- + +## 🏗️ Adding Your First Project + +To add a new project, navigate to the **"My Projects"** tab and click on the **"Add New Project"** button. + +### Fields to Fill: +- **Project Name**: A descriptive name for your local project. +- **Project Path**: The absolute path to your project folder. +- **Host / Domain**: The local domain to use (e.g., `test-site.local`). +- **PHP Version**: Choose which PHP-FPM version will run this project. +- **MariaDB Version**: Choose the MariaDB version to use (Default: Latest). +- **Server Type**: Decide between **Nginx** (Modern, High-performance) or **Apache** (Supports `.htaccess`). + +--- + +## 🛠️ Managing Projects + +Each project in your list has a set of actions: +1. **Browse File System**: Quickly open your project folder. +2. **Open in Browser**: Open your local domain in your default browser. +3. **Configure Server**: Edit specific Nginx/Apache configs just for this project. +4. **Edit Project Settings**: Change PHP version, server type, or project paths. +5. **Delete Project**: Remove it from the list (does not delete files). + +--- + +## 🌐 Automatic Virtual Hosts + +Multi-PHP's configuration engine automatically generates the necessary virtual host files for Nginx and Apache. When you start the services, they will be aware of all your local domains. + +> [!WARNING] +> You may need to edit your system's **`hosts`** file manually if you are using custom domains like `.local` or `.dev`. Multi-PHP tries its best to manage this, but some system permissions may require manual intervention. + +### 📖 Next Steps +- [Configure PHP Versions & Extensions](./php.md) +- [Manage MariaDB Databases](./database.md) +- [System Integration](./settings.md) diff --git a/docs/user-guide/en/settings.md b/docs/user-guide/en/settings.md new file mode 100644 index 0000000..86094ca --- /dev/null +++ b/docs/user-guide/en/settings.md @@ -0,0 +1,43 @@ +# System Settings & CLI Integration + +Multi-PHP provides a robust way to integrate your local development environment directly into your operating system's command line. + +--- + +## 💻 CLI & System PATH Integration + +Access your PHP and MariaDB binaries directly from any terminal window (CMD, PowerShell). + +### Setting Up CLI Access: +1. Navigate to `Settings > CLI & Environment Variables`. +2. Enable **"System PATH Integration"**. +3. Choose your **"Default PHP Version"** (this is what runs when you type `php` in a terminal). +4. Choose your **"Default MariaDB Version"** (for `mysql` and `mariadb` commands). +5. Click **"Sync Commands"** to apply changes. + +### Generated Commands (Aliases): +Multi-PHP automatically creates and manages version-specific commands for you: +- `php83`: Triggers PHP 8.3 binary. +- `php74`: Triggers PHP 7.4 binary. +- `mysql`: Triggers default MariaDB client. + +--- + +## 🛰️ Port Management & Remote Access + +Each web and database server has its own port settings in `Settings > General`. + +- **Nginx & Apache Ports**: Defaults to 80, but can be changed to 8080 or 8888. +- **MariaDB Port**: Defaults to 3306. +- **PHP-FPM Port**: Defaults to 9000. +- **Allow Remote Access**: When enabled, the software listens on `0.0.0.0` allowing other devices on your local network to access your development sites. + +--- + +> [!WARNING] +> You must **restart your terminal windows** (CMD, PowerShell) for the PATH changes to take effect after clicking "Sync Commands". + +### 📖 Next Steps +- [Learn about Database Management](./database.md) +- [System Advanced Tools](./tools.md) +- [Troubleshooting Common Issues](./troubleshooting.md) diff --git a/docs/user-guide/en/tools.md b/docs/user-guide/en/tools.md new file mode 100644 index 0000000..bc639c6 --- /dev/null +++ b/docs/user-guide/en/tools.md @@ -0,0 +1,45 @@ +# Advanced Tools & Monitoring + +Multi-PHP goes beyond just serving PHP projects, providing a comprehensive set of diagnostic and performance tuning tools. + +--- + +## 🚦 Service Logs & Activity Tracking + +Access live and historical logs for all services in the **"Service Logs"** menu. + +### Tracked Events: +- **Service Starts/Stops**: View when exactly each server was launched or stopped. +- **Service Errors**: Get detailed error messages if a service crashes or fails to start. +- **Activity Chart**: A visual representation of service availability over time. +- **Event Log**: A detailed, row-by-row history of every service-related action. + +--- + +## 🎛️ Server Tuning & Performance + +Fine-tune your environment for different types of development tasks using **"Server Tuning"**. + +### Modifiable Parameters: +- **PHP Total Memory**: Increase `memory_limit` for heavy scripts. +- **Max Execution Time**: Allow long-running local operations. +- **Max Upload Size**: Increase file size limits for forms. +- **MariaDB Connections**: Set the concurrent client limits. +- **InnoDB Buffer Pool**: Tailor database performance based on your system RAM. + +--- + +## 🗃️ phpMyAdmin Installation + +If you don't use another database GUI, Multi-PHP offers a one-click **phpMyAdmin** installation. + +- **Fast Install**: Multi-PHP downloads and configures the latest phpMyAdmin automatically. +- **Easy Integration**: Accessible via your virtual host as `localhost/phpmyadmin` or a dedicated "OPEN" button. + +> [!TIP] +> Use the **"Refresh"** button to ensure you are viewing the most up-to-date service information. + +### 📖 Next Steps +- [Troubleshooting Common Issues](./troubleshooting.md) +- [How to manage MariaDB Databases](./database.md) +- [Configure PHP Versions & Extensions](./php.md) diff --git a/docs/user-guide/en/troubleshooting.md b/docs/user-guide/en/troubleshooting.md new file mode 100644 index 0000000..9c79eb8 --- /dev/null +++ b/docs/user-guide/en/troubleshooting.md @@ -0,0 +1,46 @@ +# Troubleshooting & Frequently Asked Questions + +Common issues you might encounter while using Multi-PHP and how to fix them. + +--- + +## 🚫 Service Fails to Start + +This is often caused by **port conflicts** with other software. + +- **Nginx & Apache (Port 80/443)**: Check if Skype, IIS, or another XAMPP/WAMP environment is running and using Port 80. +- **MariaDB (Port 3306)**: Check if you have an existing MySQL or MariaDB installation running. +- **Solution**: Go to `Settings > General` and change the conflicting port to something else (e.g., Change Nginx to 8080 or MariaDB to 3307). + +--- + +## ❌ PHP Error: "No input file specified" + +This usually means Nginx or Apache cannot find your project's PHP files. + +- **Verify Project Path**: Check if the project path in "My Projects" is correct. +- **Trailing Slash**: Ensure your project path doesn't end with an extra trailing slash unless necessary. +- **Restart Services**: Try stopping all services and starting them again. + +--- + +## 🔒 403 Forbidden Access + +Permissions or configuration issues can block access to your local site. + +- **Index File Missing**: Ensure your project folder contains an `index.php` or `index.html`. +- **Nginx Config**: If using Nginx, check the project-specific configuration for any manual `deny` rules. +- **Directory Indexing**: By default, Multi-PHP allows directory indexing. If it's blocked, you must have an index file. + +--- + +## 💻 CLI Commands (php, mysql) Not Working + +- **PATH Not Updated**: You must click "Sync Commands" in the CLI settings. +- **Terminal Window**: Close and reopen your terminal (CMD, PowerShell) for the changes to take effect. +- **Check Integration**: Ensure the "System PATH Integration" toggle is ON. + +--- + +> [!TIP] +> If you're still having trouble, check the **"Service Logs"** for detailed error messages from the PHP, Nginx, or MariaDB binaries. diff --git a/docs/user-guide/en/web-servers.md b/docs/user-guide/en/web-servers.md new file mode 100644 index 0000000..cc4a0dc --- /dev/null +++ b/docs/user-guide/en/web-servers.md @@ -0,0 +1,40 @@ +# Web Servers: Nginx vs. Apache + +Multi-PHP lets you choose the right web server for each of your projects or set a global default. + +--- + +## 🌩️ Choosing a Web Server + +You can switch between Nginx and Apache for any of your projects in the **"My Projects"** settings. + +- **Nginx**: Lightweight, high-performance, and standard for modern web development. +- **Apache**: Traditional, robust, and supports native `.htaccess` files for fine-grained configuration. + +--- + +## 🛠️ Global Configuration Management + +Each server has its own main configuration file where you can manage ports, worker processes, and global settings. + +### Nginx Configuration (`nginx.conf`) +- **Test Config**: Use the "Test Configuration" button to verify your changes without restarting the server. +- **Save & Reload**: Apply configuration changes instantly. + +### Apache Configuration (`httpd.conf`) +- **Main Server Settings**: Configure global document roots, module activation, and standard ports. +- **HTAccess Support**: When Apache is active, it automatically reads `.htaccess` files in your project folders. + +--- + +## 📁 Shared Server Assets + +Multi-PHP comes with pre-configured, professional designs for **Index of** (directory listings) and **Error Pages** (404, 500). These are consistent across both Nginx and Apache. + +> [!WARNING] +> Editing global configuration files can prevent your servers from starting. Always use the **"Test Configuration"** tool before applying changes. + +### 📖 Next Steps +- [Learn how to manage CLI and System Integration](./settings.md) +- [System Advanced Tools](./tools.md) +- [Troubleshooting Common Issues](./troubleshooting.md) diff --git a/docs/user-guide/tr/database.md b/docs/user-guide/tr/database.md new file mode 100644 index 0000000..b9feb3d --- /dev/null +++ b/docs/user-guide/tr/database.md @@ -0,0 +1,46 @@ +# MariaDB Veritabanı Yönetimi + +Multi-PHP, GUI tabanlı sihirbazlardan derin süreç izlemeye kadar MariaDB veritabanlarını yönetmek için kapsamlı bir araç seti sunar. + +--- + +## 📊 Veritabanı ve Kullanıcı Yönetimi + +Multi-PHP, MySQL/MariaDB veritabanlarını ve kullanıcılarını kolayca oluşturmanızı ve yönetmenizi sağlar: + +- **Veritabanı Oluştur**: Kendi adıyla hızlıca yeni bir veritabanı oluşturun. +- **Kullanıcıları Yönet**: Yeni veritabanı kullanıcıları oluşturun, şifre belirleyin ve izinleri yönetin. +- **Veritabanlarını Listele**: Mevcut tüm veritabanlarını ve kullanım istatistiklerini görüntüleyin. + +--- + +## 🧙 MariaDB İçe ve Dışa Aktarma Sihirbazları + +Akıllı sihirbazlarımız veri taşıma işleminin karmaşıklığını ortadan kaldırır: + +### **İçe Aktarma Sihirbazı (SQL/Arşiv)** +- Bir `.sql`, `.zip` veya `.sql.gz` dosyası seçin. +- Hedef MariaDB sunucunuzu ve veritabanınızı seçin. +- Multi-PHP gerisini halleder, dosyaları otomatik olarak ayıklar ve verileri seçilen DB'ye aktarır. + +### **Dışa Aktarma Sihirbazı (Yedekleme)** +- Dışa aktarmak istediğiniz veritabanını seçin. +- Dosyayı Gzip (`.gz`) kullanarak sıkıştırmak isteyip istemediğinizi seçin. +- Dosyayı istediğiniz konuma kaydedin. + +--- + +## 🕒 MariaDB Süreç İzleyici + +Veritabanınızın etkinliğini gerçek zamanlı olarak izleyin. Süreç İzleyicimiz şunları gösterir: +- **Aktif Bağlantılar**: Şu anda veritabanına kimlerin bağlı olduğu. +- **SQL Sorguları**: Çalıştırılan tam SQL ve ne kadar sürdüğü. +- **Süreçleri Sonlandır**: Takılan veya sorunlu veritabanı bağlantılarını anında sonlandırın. + +> [!TIP] +> Daha geleneksel bir web tabanlı arayüze mi ihtiyacınız var? **"Araçlar"** menüsüne gidin ve tek bir tıklamayla **phpMyAdmin**'i kurun. + +### 📖 Sonraki Adımlar +- [Nginx ve Apache Sunucularını Yönetmeyi Öğrenin](./web-servers.md) +- [CLI ve Sistem Entegrasyonunu Yönetin](./settings.md) +- [Yaygın Sorunları Giderme](./troubleshooting.md) diff --git a/docs/user-guide/tr/index.md b/docs/user-guide/tr/index.md new file mode 100644 index 0000000..76c73bb --- /dev/null +++ b/docs/user-guide/tr/index.md @@ -0,0 +1,39 @@ +# Giriş ve Hızlı Başlangıç + +Windows için hepsi bir arada yerel geliştirme ortamı olan **Multi-PHP**'ye hoş geldiniz. Bu kılavuz, ilk adımlarınızda size yol gösterecek ve ortamınızı kurup çalıştırmanıza yardımcı olacaktır. + +--- + +## 🚀 Hızlı Başlangıç + +İlk PHP projenize başlamak için bu adımları izleyin: + +1. **Multi-PHP'yi Başlatın**: Uygulamayı masaüstünden veya başlat menüsünden açın. +2. **Kontrol Paneli Özeti**: İlk açılışta Kontrol Panelini göreceksiniz. Burası tüm servisleriniz için kontrol merkezinizdir. +3. **PHP İndirin**: `Ayarlar > PHP Versiyonları` bölümüne gidin ve en az bir PHP versiyonu (ör. PHP 8.3) indirin. +4. **Servisleri Başlatın**: Nginx/Apache ve MariaDB'yi başlatmak için Kontrol Panelindeki **"Hepsini Başlat"** düğmesine tıklayın. +5. **Proje Oluşturun**: **"Projelerim"** sekmesine gidin ve ilk proje klasörünüzü ekleyin. + +--- + +## 🏢 Temel Bileşenler + +Multi-PHP, modern web geliştirme için birkaç temel aracı bir araya getirir: + +| Bileşen | Açıklama | +| :--- | :--- | +| **PHP-FPM** | PHP için yüksek performanslı FastCGI süreç yöneticisi. | +| **Nginx** | Modern, hafif ve hızlı web sunucusu. | +| **Apache** | `.htaccess` desteğine sahip, sağlam, geleneksel web sunucusu. | +| **MariaDB** | MySQL'in topluluk tarafından geliştirilen, ticari olarak desteklenen çatalı. | +| **phpMyAdmin** | Kolay veritabanı yönetimi için web arayüzü. | + +--- + +> [!IMPORTANT] +> Varsayılan portları (80, 3306) başka uygulamalar (Skype veya başka bir XAMPP kurulumu gibi) tarafından kullanılıyorsa servislerin başlatılması başarısız olabilir. Gerekirse bu portları değiştirmek için **"Ayarlar"**ı kontrol edin. + +### 📖 Sonraki Adımlar +- [Projeleri Nasıl Yöneteceğinizi Öğrenin](./projects.md) +- [PHP Versiyonlarını ve Eklentilerini Yapılandırın](./php.md) +- [MariaDB Veritabanlarını Yönetin](./database.md) diff --git a/docs/user-guide/tr/php.md b/docs/user-guide/tr/php.md new file mode 100644 index 0000000..4548c22 --- /dev/null +++ b/docs/user-guide/tr/php.md @@ -0,0 +1,43 @@ +# PHP Versiyonları ve Eklentileri Yönetimi + +Multi-PHP, projeleriniz için farklı PHP ortamlarını kolayca değiştirmenize, yapılandırmanıza ve yönetmenize olanak tanır. + +--- + +## 🔩 PHP Versiyonlarını Yönetme + +Gereken PHP versiyonlarını indirmek, seçmek ve yönetmek için `Ayarlar > PHP Versiyonları` bölümüne gidin. + +- **Kullanılabilir Versiyonlar**: İndirilmeye hazır tüm PHP versiyonlarının listesi. +- **İndirilen Versiyonlar**: Sisteminizde yüklü olan versiyonlar. +- **Varsayılan Versiyon**: CLI (ör. terminal) için kullanılan genel PHP versiyonu. +- **Yeniden Başlatma Gecikmesi**: Ayarlar değiştiğinde Multi-PHP, PHP-FPM'yi otomatik olarak yeniden başlatır. + +--- + +## 🛠️ PHP Eklenti Yöneticisi + +Multi-PHP'deki her PHP versiyonu kendi eklenti yöneticisiyle birlikte gelir. Artık yaygın görevler için `php.ini` dosyasını manuel olarak düzenlemenize gerek yok. + +### Yöneticinin Kullanımı: +1. **Eklentiyi Seçin**: İstediğiniz eklentiyi bulun (ör. `mysql`, `gd`, `zip`). +2. **Değiştir**: Eklentiyi etkinleştirmek veya devre dışı bırakmak için tıklayın. +3. **Uygula**: Multi-PHP, `php.ini` dosyasını sizin için güncelleyecek ve ilgili servisi otomatik olarak yeniden başlatacaktır. + +--- + +## 📝 `php.ini` Dosyasını Manuel Düzenleme + +PHP yapılandırmanız üzerinde ince ayar yapmanız gerekirse, yerleşik **RAW EDİTÖR**'ü kullanın. + +1. **Editörü Açın**: Eklentiler penceresindeki editör düğmesine erişin. +2. **Kaydet ve Yeniden Başlat**: Değişiklikleri anında uygulamak için "Kaydet ve Yeniden Başlat" düğmesine tıklayın. +3. **Bul ve Değiştir**: `memory_limit` veya `max_execution_time` gibi belirli değişkenleri bulmak için arama işlevini kullanın. + +> [!TIP] +> `php.ini` dosyalarını manuel olarak düzenlemek zorunda kalmadan yaygın PHP performans ayarlarını hızlıca yapmak için "Araçlar" menüsü altındaki **"Sunucu Ayarlaması"** aracını da kullanabilirsiniz. + +### 📖 Sonraki Adımlar +- [MariaDB Veritabanlarını Yönetmeyi Öğrenin](./database.md) +- [Web Sunucularını Yapılandırın](./web-servers.md) +- [Sistem Entegrasyonu](./settings.md) diff --git a/docs/user-guide/tr/projects.md b/docs/user-guide/tr/projects.md new file mode 100644 index 0000000..b6f94e8 --- /dev/null +++ b/docs/user-guide/tr/projects.md @@ -0,0 +1,42 @@ +# Sanal Host ve Proje Yönetimi + +Multi-PHP'de yerel PHP projelerinizi yönetmek basit ve etkilidir. Platformumuz sizin için sanal host yapılandırmasını otomatik olarak yönetir. + +--- + +## 🏗️ İlk Projenizi Ekleyin + +Yeni bir proje eklemek için **"Projelerim"** sekmesine gidin ve **"Yeni Proje Ekle"** düğmesine tıklayın. + +### Doldurulacak Alanlar: +- **Proje Adı**: Yerel projeniz için açıklayıcı bir ad. +- **Proje Yolu**: Proje klasörünüzün mutlak yolu. +- **Host / Domain**: Kullanılacak yerel alan adı (örneğin, `test-site.local`). +- **PHP Versiyonu**: Bu projeyi çalıştıracak PHP-FPM versiyonunu seçin. +- **MariaDB Versiyonu**: Kullanılacak MariaDB versiyonunu seçin (Varsayılan: En Son). +- **Sunucu Tipi**: **Nginx** (Modern, Yüksek Performans) veya **Apache** (`.htaccess` destekler) arasında karar verin. + +--- + +## 🛠️ Projeleri Yönetme + +Listenizdeki her projenin bir dizi eylemi vardır: +1. **Dosya Sistemi Gözat**: Proje klasörünüzü hızlıca açın. +2. **Tarayıcıda Aç**: Yerel alan adınızı varsayılan tarayıcınızda açın. +3. **Sunucuyu Yapılandır**: Yalnızca bu proje için özel Nginx/Apache konfigürasyonlarını düzenleyin. +4. **Proje Ayarlarını Düzenle**: PHP versiyonunu, sunucu tipini veya proje yollarını değiştirin. +5. **Projeyi Sil**: Listeden kaldırın (dosyaları silmez). + +--- + +## 🌐 Otomatik Sanal Hostlar + +Multi-PHP'nin yapılandırma motoru, Nginx ve Apache için gerekli sanal host dosyalarını otomatik olarak oluşturur. Servisleri başlattığınızda, tüm yerel alan adlarınızdan haberdar olurlar. + +> [!WARNING] +> `.local` veya `.dev` gibi özel alan adları kullanıyorsanız sisteminizin **`hosts`** dosyasını manuel olarak düzenlemeniz gerekebilir. Multi-PHP bunu yönetmek için elinden geleni yapar, ancak bazı sistem izinleri manuel müdahale gerektirebilir. + +### 📖 Sonraki Adımlar +- [PHP Versiyonlarını ve Eklentilerini Yapılandırın](./php.md) +- [MariaDB Veritabanlarını Yönetin](./database.md) +- [Sistem Entegrasyonu](./settings.md) diff --git a/docs/user-guide/tr/settings.md b/docs/user-guide/tr/settings.md new file mode 100644 index 0000000..d57f19a --- /dev/null +++ b/docs/user-guide/tr/settings.md @@ -0,0 +1,43 @@ +# Sistem Ayarları ve CLI Entegrasyonu + +Multi-PHP, yerel geliştirme ortamınızı doğrudan işletim sisteminizin komut satırına entegre etmenin sağlam bir yolunu sunar. + +--- + +## 💻 CLI ve Sistem PATH Entegrasyonu + +Herhangi bir terminal penceresinden (CMD, PowerShell) PHP ve MariaDB ikili dosyalarına doğrudan erişin. + +### CLI Erişimini Kurma: +1. `Ayarlar > CLI ve Ortam Değişkenleri` bölümüne gidin. +2. **"Sistem PATH Entegrasyonu"** seçeneğini etkinleştirin. +3. **"Varsayılan PHP Versiyonu"**nu seçin (terminale `php` yazdığınızda bu versiyon çalışır). +4. **"Varsayılan MariaDB Versiyonu"**nu seçin (`mysql` ve `mariadb` komutları için). +5. Değişiklikleri uygulamak için **"Komutları Senkronize Et"** düğmesine tıklayın. + +### Oluşturulan Komutlar (Takma Adlar): +Multi-PHP sizin için versiyona özel komutları otomatik olarak oluşturur ve yönetir: +- `php83`: PHP 8.3 ikili dosyasını tetikler. +- `php74`: PHP 7.4 ikili dosyasını tetikler. +- `mysql`: Varsayılan MariaDB istemcisini tetikler. + +--- + +## 🛰️ Port Yönetimi ve Uzaktan Erişim + +Her web ve veritabanı sunucusunun `Ayarlar > Genel` bölümünde kendi port ayarları vardır. + +- **Nginx ve Apache Portları**: Varsayılan olarak 80'dir, ancak 8080 veya 8888 olarak değiştirilebilir. +- **MariaDB Portu**: Varsayılan olarak 3306'dır. +- **PHP-FPM Portu**: Varsayılan olarak 9000'dir. +- **Uzaktan Erişime İzin Ver**: Etkinleştirildiğinde, yazılım `0.0.0.0` adresini dinleyerek yerel ağınızdaki diğer cihazların geliştirme sitelerinize erişmesine olanak tanır. + +--- + +> [!WARNING] +> "Komutları Senkronize Et" düğmesine tıkladıktan sonra PATH değişikliklerinin etkili olması için **terminal pencerelerini (CMD, PowerShell) yeniden başlatmanız** gerekir. + +### 📖 Sonraki Adımlar +- [Veritabanı Yönetimi Hakkında Bilgi Edinin](./database.md) +- [Gelişmiş Sistem Araçları](./tools.md) +- [Yaygın Sorunları Giderme](./troubleshooting.md) diff --git a/docs/user-guide/tr/tools.md b/docs/user-guide/tr/tools.md new file mode 100644 index 0000000..e0fbfce --- /dev/null +++ b/docs/user-guide/tr/tools.md @@ -0,0 +1,45 @@ +# Gelişmiş Araçlar ve İzleme + +Multi-PHP, sadece PHP projelerini sunmakla kalmaz, aynı zamanda kapsamlı bir tanılama ve performans ayarlama araçları seti sunar. + +--- + +## 🚦 Servis Kayıtları ve Etkinlik İzleme + +**"Servis Logları"** menüsünden tüm servisler için canlı ve geçmiş kayıtlara erişin. + +### İzlenen Etkinlikler: +- **Servis Başlatma/Durdurma**: Her sunucunun tam olarak ne zaman başlatıldığını veya durdurulduğunu görün. +- **Servis Hataları**: Bir servis çökerse veya başlatılamazsa ayrıntılı hata mesajları alın. +- **Etkinlik Grafiği**: Servislerin zaman içindeki kullanılabilirliğinin görsel temsili. +- **Olay Günlüğü**: Servisle ilgili her eylemin ayrıntılı, satır satır geçmişi. + +--- + +## 🎛️ Sunucu Ayarı ve Performans + +**"Sunucu Ayarlaması"** seçeneğini kullanarak farklı geliştirme görevleri türleri için ortamınıza ince ayar yapın. + +### Değiştirilebilir Parametreler: +- **Toplam PHP Belleği**: Ağır betikler için `memory_limit` değerini artırın. +- **Maksimum Çalışma Süresi**: Uzun süren yerel işlemler için izin verin. +- **Maksimum Yükleme Boyutu**: Formlar için dosya boyutu sınırlarını artırın. +- **MariaDB Bağlantıları**: Eşzamanlı istemci sınırlarını belirleyin. +- **InnoDB Arabellek Havuzu**: Veritabanı performansını sistem RAM'inize göre uyarlayın. + +--- + +## 🗃️ phpMyAdmin Kurulumu + +Başka bir veritabanı GUI'si kullanmıyorsanız, Multi-PHP tek tıkla **phpMyAdmin** kurulumu sunar. + +- **Hızlı Kurulum**: Multi-PHP, en son phpMyAdmin sürümünü otomatik olarak indirir ve yapılandırır. +- **Kolay Entegrasyon**: Sanal ana bilgisayarınız üzerinden `localhost/phpmyadmin` olarak veya özel bir "AÇ" düğmesiyle erişilebilir. + +> [!TIP] +> En güncel servis bilgilerini görüntülediğinizden emin olmak için **"Yenile"** düğmesini kullanın. + +### 📖 Sonraki Adımlar +- [Yaygın Sorunları Giderme](./troubleshooting.md) +- [MariaDB Veritabanlarını Yönetme](./database.md) +- [PHP Versiyonlarını ve Eklentilerini Yapılandırma](./php.md) diff --git a/docs/user-guide/tr/troubleshooting.md b/docs/user-guide/tr/troubleshooting.md new file mode 100644 index 0000000..7188995 --- /dev/null +++ b/docs/user-guide/tr/troubleshooting.md @@ -0,0 +1,46 @@ +# Sorun Giderme ve Sıkça Sorulan Sorular + +Multi-PHP kullanırken karşılaşabileceğiniz yaygın sorunlar ve bunların nasıl düzeltileceği. + +--- + +## 🚫 Servis Başlatılamadı + +Bu durum genellikle diğer yazılımlarla olan **port çakışmalarından** kaynaklanır. + +- **Nginx ve Apache (Port 80/443)**: Skype, IIS veya başka bir XAMPP/WAMP ortamının çalışıp çalışmadığını ve Port 80'i kullanıp kullanmadığını kontrol edin. +- **MariaDB (Port 3306)**: Mevcut bir MySQL veya MariaDB kurulumunun çalışıp çalışmadığını kontrol edin. +- **Çözüm**: `Ayarlar > Genel` bölümüne gidin ve çakışan portu başka bir numara ile değiştirin (örneğin, Nginx'i 8080 veya MariaDB'yi 3307 olarak değiştirin). + +--- + +## ❌ PHP Hatası: "No input file specified" + +Bu genellikle Nginx veya Apache'nin projenizin PHP dosyalarını bulamadığı anlamına gelir. + +- **Proje Yolunu Doğrulayın**: "Projelerim"deki proje yolunun doğru olup olmadığını kontrol edin. +- **Sondaki Eğik Çizgi**: Proje yolunuzun gerekli olmadıkça fazladan bir eğik çizgi ile bitmediğinden emin olun. +- **Servisleri Yeniden Başlatın**: Tüm servisleri durdurup yeniden başlatmayı deneyin. + +--- + +## 🔒 403 Erişim Engellendi + +İzinler veya yapılandırma sorunları yerel sitenize erişimi engelleyebilir. + +- **Dizin Dosyası Eksik**: Proje klasörünüzün bir `index.php` veya `index.html` dosyası içerdiğinden emin olun. +- **Nginx Yapılandırması**: Nginx kullanıyorsanız, projeye özel yapılandırmada herhangi bir manuel `deny` kuralı olup olmadığını kontrol edin. +- **Dizin Listeleme**: Varsayılan olarak Multi-PHP dizin listelemeye izin verir. Engellenmişse, bir dizin dosyanızın olması gerekir. + +--- + +## 💻 CLI Komutları (php, mysql) Çalışmıyor + +- **PATH Güncellenmedi**: CLI ayarlarında "Komutları Senkronize Et" düğmesine tıklamanız gerekir. +- **Terminal Penceresi**: Değişikliklerin etkili olması için terminali (CMD, PowerShell) kapatıp yeniden açın. +- **Entegrasyonu Kontrol Edin**: "Sistem PATH Entegrasyonu" anahtarının AÇIK olduğundan emin olun. + +--- + +> [!TIP] +> Hala sorun yaşıyorsanız, PHP, Nginx veya MariaDB ikili dosyalarından gelen ayrıntılı hata mesajları için **"Servis Logları"**nı kontrol edin. diff --git a/docs/user-guide/tr/web-servers.md b/docs/user-guide/tr/web-servers.md new file mode 100644 index 0000000..d3e0105 --- /dev/null +++ b/docs/user-guide/tr/web-servers.md @@ -0,0 +1,40 @@ +# Web Sunucuları: Nginx ve Apache + +Multi-PHP, her projeniz için doğru web sunucusunu seçmenize veya genel bir varsayılan belirlemenize olanak tanır. + +--- + +## 🌩️ Web Sunucusu Seçme + +**"Projelerim"** ayarlarında projelerinizden herhangi biri için Nginx ve Apache arasında geçiş yapabilirsiniz. + +- **Nginx**: Hafif, yüksek performanslı ve modern web geliştirme için standart. +- **Apache**: Geleneksel, sağlam ve ince ayarlı yapılandırma için yerel `.htaccess` dosyalarını destekler. + +--- + +## 🛠️ Genel Yapılandırma Yönetimi + +Her sunucunun portları, işçi süreçlerini ve genel ayarları yönetebileceğiniz kendi ana yapılandırma dosyası vardır. + +### Nginx Yapılandırması (`nginx.conf`) +- **Yapılandırmayı Test Et**: Sunucuyu yeniden başlatmadan değişikliklerinizi doğrulamak için "Yapılandırmoyu Test Et" düğmesini kullanın. +- **Kaydet ve Yeniden Yükle**: Yapılandırma değişikliklerini anında uygulayın. + +### Apache Yapılandırması (`httpd.conf`) +- **Ana Sunucu Ayarları**: Genel belge köklerini, modül etkinleştirmeyi ve standart portları yapılandırın. +- **HTAccess Desteği**: Apache aktif olduğunda, proje klasörlerinizdeki `.htaccess` dosyalarını otomatik olarak okur. + +--- + +## 📁 Paylaşılan Sunucu Varlıkları + +Multi-PHP, **Dizin Listeleme** ve **Hata Sayfaları** (404, 500) için önceden yapılandırılmış, profesyonel tasarımlarla birlikte gelir. Bunlar hem Nginx hem de Apache'de tutarlıdır. + +> [!WARNING] +> Genel yapılandırma dosyalarını düzenlemek sunucularınızın başlatılmasını engelleyebilir. Değişiklikleri uygulamadan önce her zaman **"Yapılandırmayı Test Et"** aracını kullanın. + +### 📖 Sonraki Adımlar +- [CLI ve Sistem Entegrasyonunu Yönetmeyi Öğrenin](./settings.md) +- [Gelişmiş Sistem Araçları](./tools.md) +- [Yaygın Sorunları Giderme](./troubleshooting.md) diff --git a/service_events.json b/service_events.json index 49eaaee..dc474f2 100644 --- a/service_events.json +++ b/service_events.json @@ -1,4 +1,116 @@ [ + { + "service": "php:5.6.40", + "action": "start", + "status": "success", + "id": "0imzcr0ru", + "timestamp": 1775139195150 + }, + { + "service": "php:7.4.33", + "action": "start", + "status": "success", + "id": "a3suiqzqo", + "timestamp": 1775139195131 + }, + { + "service": "php:8.2.30", + "action": "start", + "status": "success", + "id": "s8b0fw3hq", + "timestamp": 1775139195111 + }, + { + "service": "php:8.5.4", + "action": "start", + "status": "success", + "id": "8anyke8nt", + "timestamp": 1775139195091 + }, + { + "service": "mariadb:11.4.2", + "action": "start", + "status": "success", + "id": "l3vbh1jky", + "timestamp": 1775139194727 + }, + { + "service": "mariadb:10.11.8", + "action": "start", + "status": "success", + "id": "bniky27me", + "timestamp": 1775139194708 + }, + { + "service": "apache", + "action": "start", + "status": "success", + "id": "hbfkygvy4", + "timestamp": 1775139194111 + }, + { + "service": "nginx", + "action": "start", + "status": "success", + "id": "jizdysmcy", + "timestamp": 1775139194036 + }, + { + "service": "php:5.6.40", + "action": "start", + "status": "success", + "id": "8l4vynn1l", + "timestamp": 1775138063111 + }, + { + "service": "php:7.4.33", + "action": "start", + "status": "success", + "id": "xv9bv5wn0", + "timestamp": 1775138063090 + }, + { + "service": "php:8.2.30", + "action": "start", + "status": "success", + "id": "qt4g1hxsp", + "timestamp": 1775138063070 + }, + { + "service": "php:8.5.4", + "action": "start", + "status": "success", + "id": "hmypljxer", + "timestamp": 1775138063045 + }, + { + "service": "mariadb:11.4.2", + "action": "start", + "status": "success", + "id": "pdxlntvnt", + "timestamp": 1775138062709 + }, + { + "service": "mariadb:10.11.8", + "action": "start", + "status": "success", + "id": "jwqo523of", + "timestamp": 1775138062691 + }, + { + "service": "apache", + "action": "start", + "status": "success", + "id": "jna0y55ay", + "timestamp": 1775138062055 + }, + { + "service": "nginx", + "action": "start", + "status": "success", + "id": "aig9pmtuw", + "timestamp": 1775138061973 + }, { "service": "php:5.6.40", "action": "start", diff --git a/src/main/ipc/index.ts b/src/main/ipc/index.ts index 7d7bdca..ffec901 100644 --- a/src/main/ipc/index.ts +++ b/src/main/ipc/index.ts @@ -366,14 +366,6 @@ export function registerIpcHandlers(): void { return { success: false, message: 'Bu servis için reload desteklenmiyor.' } }) - ipcMain.handle('services:get-events', async () => { - return serviceEventLogger.getEvents() - }) - - ipcMain.handle('services:clear-events', async () => { - serviceEventLogger.clear() - return { success: true } - }) ipcMain.handle('services:start', async (_event, serviceName: string) => { try { @@ -1192,6 +1184,68 @@ export function registerIpcHandlers(): void { } }) + ipcMain.handle('docs:open-user-guide', async (_event, locale: string) => { + try { + const guidePath = path.join(process.cwd(), 'docs', 'user-guide', locale, 'index.md') + if (fs.existsSync(guidePath)) { + await shell.openPath(guidePath) + return { success: true } + } else { + // Fallback to directory or English if specific locale file doesn't exist + const langDir = path.join(process.cwd(), 'docs', 'user-guide', locale) + if (fs.existsSync(langDir)) { + await shell.openPath(langDir) + return { success: true } + } + throw new Error(`Kullanım kılavuzu bulunamadı: ${locale}`) + } + } catch (error: any) { + console.error('Failed to open user guide:', error) + return { success: false, message: error.message } + } + }) + + ipcMain.handle('docs:list-topics', async (_event, locale: string) => { + try { + const localeDir = path.join(process.cwd(), 'docs', 'user-guide', locale) + if (!fs.existsSync(localeDir)) return [] + + const files = fs.readdirSync(localeDir).filter(f => f.endsWith('.md')) + const topics = files.map(file => { + const fullPath = path.join(localeDir, file) + const content = fs.readFileSync(fullPath, 'utf8') + const firstLine = content.split('\n')[0] + const title = firstLine.replace(/^#\s*/, '').trim() || file + return { file, title } + }) + + // Reorder so index.md is first + const indexIdx = topics.findIndex(t => t.file === 'index.md') + if (indexIdx > -1) { + const index = topics.splice(indexIdx, 1)[0] + topics.unshift(index) + } + + return topics + } catch (error: any) { + console.error('Failed to list topics:', error) + return [] + } + }) + + ipcMain.handle('docs:read-topic', async (_event, { locale, file }) => { + try { + const filePath = path.join(process.cwd(), 'docs', 'user-guide', locale, file) + if (fs.existsSync(filePath)) { + return fs.readFileSync(filePath, 'utf8') + } + throw new Error(`Dosya bulunamadı: ${file}`) + } catch (error: any) { + console.error('Failed to read topic:', error) + return '' + } + }) + ipcMain.handle('services:clear-events', async () => { try { serviceEventLogger.clear() diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 75dc9a9..546a1b3 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -80,7 +80,8 @@ import { Restore as ResetIcon, Search as SearchIcon, Tune as TuningIcon, - History as HistoryIcon + History as HistoryIcon, + MenuBook as GuideIcon } from '@mui/icons-material' import Swal from 'sweetalert2' import { useTranslation } from 'react-i18next' @@ -93,6 +94,7 @@ import ApacheCodeEditor from './components/ApacheCodeEditor' import PhpExtensionManager from './components/PhpExtensionManager' import ServerTuning from './components/ServerTuning' import ServiceEventMonitor from './components/ServiceEventMonitor' +import UserGuide from './components/UserGuide' declare global { interface Window { @@ -1137,6 +1139,12 @@ function App(): JSX.Element { + + setActiveTab('user_guide')}> + + + + setActiveTab('settings')}> @@ -1159,6 +1167,7 @@ function App(): JSX.Element { {activeTab === 'tuning' && } {activeTab === 'db_manager' && } {activeTab === 'event_monitor' && } + {activeTab === 'user_guide' && } {activeTab === 'settings' && ( diff --git a/src/renderer/src/components/UserGuide.tsx b/src/renderer/src/components/UserGuide.tsx new file mode 100644 index 0000000..75564ad --- /dev/null +++ b/src/renderer/src/components/UserGuide.tsx @@ -0,0 +1,355 @@ +import { useState, useEffect } from 'react' +import { + Box, + Typography, + Paper, + List, + ListItem, + ListItemButton, + ListItemText, + Alert, + AlertTitle, + Grid, + Breadcrumbs, + Link, + CircularProgress +} from '@mui/material' +import { + MenuBook as GuideIcon, + ChevronRight as ChevronRightIcon, + Info as InfoIcon, + Lightbulb as TipIcon, + ReportProblem as WarningIcon, + PriorityHigh as CautionIcon +} from '@mui/icons-material' +import { useTranslation } from 'react-i18next' +import Prism from 'prismjs' + +interface Topic { + file: string + title: string +} + +const UserGuide = () => { + const { t, i18n } = useTranslation() + const [topics, setTopics] = useState([]) + const [selectedTopic, setSelectedTopic] = useState('index.md') + const [content, setContent] = useState('') + const [loading, setLoading] = useState(false) + + useEffect(() => { + const fetchTopics = async () => { + const list = await window.api.invoke('docs:list-topics', i18n.language) + setTopics(list) + if (list.length > 0 && !selectedTopic) { + setSelectedTopic(list[0].file) + } + } + fetchTopics() + }, [i18n.language]) + + useEffect(() => { + const fetchContent = async () => { + if (!selectedTopic) return + setLoading(true) + const text = await window.api.invoke('docs:read-topic', { + locale: i18n.language, + file: selectedTopic + }) + setContent(text) + setLoading(false) + // Re-highlight code snippets after content is set + setTimeout(() => Prism.highlightAll(), 50) + } + fetchContent() + }, [selectedTopic, i18n.language]) + + const renderMarkdown = (text: string) => { + if (!text) return null + + // Simple Markdown Parser (Line by Line) + const lines = text.split('\n') + const elements: JSX.Element[] = [] + let currentList: JSX.Element[] = [] + let inCodeBlock = false + let codeContent = '' + let codeLang = '' + let inAlert = false + let alertType: 'info' | 'warning' | 'error' | 'success' = 'info' + let alertTitle = '' + let alertLines: string[] = [] + + const flushList = () => { + if (currentList.length > 0) { + elements.push( + + {currentList} + + ) + currentList = [] + } + } + + const flushAlert = () => { + if (inAlert) { + const Icon = alertType === 'warning' ? WarningIcon : + alertType === 'error' ? CautionIcon : + alertType === 'info' ? InfoIcon : TipIcon + + elements.push( + } + > + {alertTitle && {alertTitle}} + {alertLines.map((line, i) => ( + + {parseInline(line)} + + ))} + + ) + inAlert = false + alertLines = [] + alertTitle = '' + } + } + + const parseInline = (line: string) => { + // Very simple inline parser for bold and raw code + let parts = line.split(/(\*\*.*?\*\*|`.*?`)/) + return parts.map((part, i) => { + if (part.startsWith('**') && part.endsWith('**')) { + return {part.slice(2, -2)} + } + if (part.startsWith('`') && part.endsWith('`')) { + return {part.slice(1, -1)} + } + return part + }) + } + + lines.forEach((line, index) => { + const trimmedLine = line.trim() + + // Code blocks + if (trimmedLine.startsWith('```')) { + if (inCodeBlock) { + elements.push( + +
+                                
+                                    {codeContent.trim()}
+                                
+                            
+
+ ) + inCodeBlock = false + codeContent = '' + codeLang = '' + } else { + flushList() + flushAlert() + inCodeBlock = true + codeLang = trimmedLine.slice(3).trim() + } + return + } + + if (inCodeBlock) { + codeContent += line + '\n' + return + } + + // Alerts [!TIP], etc. + const alertMatch = trimmedLine.match(/^>\s*\[!(TIP|WARNING|IMPORTANT|NOTE|CAUTION)\]/) + if (alertMatch) { + flushList() + flushAlert() + inAlert = true + const type = alertMatch[1] + alertType = type === 'WARNING' || type === 'CAUTION' ? 'warning' : + type === 'IMPORTANT' ? 'error' : + type === 'TIP' ? 'success' : 'info' + alertTitle = type + return + } + + if (inAlert) { + if (trimmedLine.startsWith('>') || trimmedLine === '') { + const content = trimmedLine.replace(/^>\s*/, '') + if (content) alertLines.push(content) + return + } else { + flushAlert() + } + } + + // Headers + if (trimmedLine.startsWith('#')) { + flushList() + flushAlert() + const level = trimmedLine.match(/^#+/)?.[0].length || 1 + const content = trimmedLine.replace(/^#+\s*/, '') + const variant = level === 1 ? 'h4' : level === 2 ? 'h5' : 'h6' + elements.push( + + {parseInline(content)} + + ) + return + } + + // Lists + if (trimmedLine.startsWith('- ') || trimmedLine.startsWith('* ')) { + flushAlert() + const content = trimmedLine.slice(2) + currentList.push( + + {parseInline(content)} + + ) + return + } + + // Paragraphs + if (trimmedLine === '') { + flushList() + flushAlert() + return + } + + if (!inCodeBlock && !inAlert) { + flushList() + elements.push( + + {parseInline(trimmedLine)} + + ) + } + }) + + flushList() + flushAlert() + return elements + } + + return ( + + {/* Breadcrumbs */} + + } aria-label="breadcrumb"> + + + {t('common.user_guide')} + + + {topics.find(t => t.file === selectedTopic)?.title || selectedTopic} + + + + + + {/* Topics Sidebar */} + + + + {t('common.topics', 'KONULAR')} + + + {topics.map((topic) => ( + + setSelectedTopic(topic.file)} + sx={{ + py: 1.5, + borderLeft: '3px solid', + borderColor: selectedTopic === topic.file ? 'primary.main' : 'transparent', + bgcolor: selectedTopic === topic.file ? 'rgba(57, 167, 255, 0.05)' : 'transparent', + '&:hover': { bgcolor: 'rgba(255,255,255,0.05)' } + }} + > + + + + ))} + + + + + {/* Content Viewer */} + + + {loading ? ( + + + + ) : ( + renderMarkdown(content) + )} + + + + + ) +} + +export default UserGuide diff --git a/src/renderer/src/locales/de.json b/src/renderer/src/locales/de.json index 55c32ed..989861f 100644 --- a/src/renderer/src/locales/de.json +++ b/src/renderer/src/locales/de.json @@ -8,6 +8,7 @@ "close": "Schließen", "quit": "Beenden", "save": "Speichern", + "user_guide": "Benutzerhandbuch", "port": "Port", "all": "Alle", "export": "Exportieren", diff --git a/src/renderer/src/locales/en.json b/src/renderer/src/locales/en.json index 6a01906..132d710 100644 --- a/src/renderer/src/locales/en.json +++ b/src/renderer/src/locales/en.json @@ -9,6 +9,7 @@ "close": "Close", "quit": "Quit", "save": "Save", + "user_guide": "User Guide", "port": "Port", "all": "All", "export": "Export", diff --git a/src/renderer/src/locales/tr.json b/src/renderer/src/locales/tr.json index 5db5a51..327453b 100644 --- a/src/renderer/src/locales/tr.json +++ b/src/renderer/src/locales/tr.json @@ -9,6 +9,7 @@ "close": "Kapat", "quit": "Çıkış", "save": "Kaydet", + "user_guide": "Kullanım Kılavuzu", "port": "Port", "all": "Tümü", "export": "Dışa Aktar",