components/nginx_control.dart
File ini mendefinisikan widget stateful untuk mengontrol server web Nginx.
Kelas Nginxcontrol:
- Sebuah
StatefulWidgetyang membuat status untuk kartu kontrol Nginx.
Kelas _NginxcontrolState:
- Kelas status untuk
Nginxcontrol. - Variabel Status:
status: Boolean yang melacak status berjalan dari layanan Nginx._isManualChanging: Sebuah flag untuk mencegah status diperbarui saat operasi mulai/berhenti sedang berlangsung._statusTimer: SebuahTimeryang secara berkala memeriksa status layanan Nginx.
sendTerminal(String message):- Fungsi pembantu untuk mengirim pesan log ke
Terminalcontext.
- Fungsi pembantu untuk mengirim pesan log ke
_checkNginxStatus():- Secara asinkron memeriksa apakah proses
nginx.exeberjalan menggunakan utilitascheckProcess(). - Ini memperbarui variabel status
statusyang sesuai.
- Secara asinkron memeriksa apakah proses
_startNginx(bool value):- Fungsi ini dipanggil saat
SwitchpadaServiceControlCarddiubah. - Jika
valueadalahtrue(mulai), ia memulainginx.exedanphp-cgi.exe. - Jika
valueadalahfalse(berhenti), ia menghentikannginx.exedan mematikan prosesnginx.exedanphp-cgi.exe. - Ini mengirim pesan log yang sesuai ke terminal.
- Ini memperbarui status
statusdan menggunakan flag_isManualChanginguntuk mencegah kondisi balapan.
- Fungsi ini dipanggil saat
_launchUrl():- Meluncurkan browser web default ke
http://localhostdengan port Nginx yang dikonfigurasi.
- Meluncurkan browser web default ke
initState():- Menginisialisasi timer pemeriksaan status untuk berjalan setiap 2 detik.
dispose():- Membatalkan timer pemeriksaan status saat widget dibuang.
build():- Mengembalikan widget
ServiceControlCarddengan properti yang sesuai untuk Nginx:serviceName: "Nginx"statusText: "Berjalan" atau "Berhenti"statusColor: Hijau atau merahvalue:statussaat inionChanged: Fungsi_startNginxonLaunch: Fungsi_launchUrl(hanya diaktifkan jika Nginx berjalan)imageAsset: "assets/nginx.png"
- Mengembalikan widget
Komponen ini menyediakan solusi lengkap untuk mengelola server web Nginx dan proses PHP-CGI terkait.