components/xampp_sameless.dart
File ini mendefinisikan widget yang memungkinkan pengguna untuk dengan mulus mengganti direktori root web antara folder htdocs GajahWeb default dan instalasi XAMPP yang ada.
Enum HtdocsLocation:
- Sebuah enumerasi yang mendefinisikan dua lokasi yang mungkin untuk direktori
htdocs:gajahwebdanxampp.
Kelas Xamppsameless:
- Sebuah
StatefulWidgetyang membuat status untuk widget mode mulus XAMPP.
Kelas _XamppsamelessState:
- Kelas status untuk
Xamppsameless. - Variabel Status:
_selection:HtdocsLocationyang saat ini dipilih._activeHtdocsPath: Path ke direktorihtdocsyang saat ini aktif._nginxPort: Nomor port yang digunakan oleh Nginx.
_initializeState():- Menginisialisasi status dengan membaca path
htdocsyang disimpan dan port Nginx dariSharedPreferences. - Ini mengatur pilihan awal berdasarkan path yang disimpan.
- Menginisialisasi status dengan membaca path
_changeHtdocs(Set<HtdocsLocation> newSelection):- Fungsi ini dipanggil ketika pengguna memilih lokasi
htdocsbaru. - Ini menentukan path baru berdasarkan pilihan.
- Ini menjalankan skrip
nginx-port.batuntuk memperbarui konfigurasi Nginx dengan path baru. - Ini menyimpan path baru ke
SharedPreferences. - Ini me-restart proses Nginx untuk menerapkan perubahan.
- Ini memperbarui status untuk mencerminkan pilihan baru.
- Fungsi ini dipanggil ketika pengguna memilih lokasi
build():- UI dibangun di dalam widget
Card. - Menampilkan judul dan deskripsi fitur.
- Sebuah
SegmentedButtonmemungkinkan pengguna untuk memilih antara "GajahWeb" dan "XAMPP" untuk root web. - Ini menunjukkan peringatan bahwa Apache dinonaktifkan dalam mode ini.
- Ini menampilkan path ke direktori
htdocsyang saat ini aktif. - Ini termasuk bagian dengan tombol info untuk memberi tahu pengguna bahwa mereka perlu memulai MySQL dan Apache XAMPP secara manual.
- UI dibangun di dalam widget
Komponen ini menyediakan fitur integrasi yang kuat bagi pengguna yang memiliki instalasi XAMPP yang ada, yang memungkinkan mereka mengelola proyek mereka dengan Gajah Webserver tanpa harus memindahkan file mereka.