# 🧹 Panduan Clear Cache & Optimize di Shared Hosting

Karena shared hosting biasanya **tidak memiliki akses SSH**, gunakan script PHP berikut untuk clear cache dan optimize.

## 📁 File yang Dibutuhkan

1. **`public/clear-cache.php`** - Script untuk clear cache dengan interface HTML
2. **`public/artisan-helper.php`** - Script untuk menjalankan artisan commands secara manual

## 🚀 Cara Menggunakan

### Metode 1: Clear Cache via Browser (Recommended)

1. **Upload file `clear-cache.php` ke folder `public/`` di hosting**

2. **Akses via browser:**
   ```
   https://yourdomain.com/clear-cache.php?secret=clear-cache-2024
   ```

3. **Untuk Clear + Optimize:**
   ```
   https://yourdomain.com/clear-cache.php?secret=clear-cache-2024&optimize=yes
   ```

4. **Setelah selesai, HAPUS file `clear-cache.php` untuk keamanan!**

### Metode 2: Manual Artisan Commands

1. **Upload file `artisan-helper.php` ke folder `public/`**

2. **Jalankan command via browser:**
   ```
   https://yourdomain.com/artisan-helper.php?secret=artisan-helper-2024&cmd=config:clear
   ```

3. **Contoh commands:**
   - Clear config: `?cmd=config:clear`
   - Clear cache: `?cmd=cache:clear`
   - Clear route: `?cmd=route:clear`
   - Clear view: `?cmd=view:clear`
   - Clear all: `?cmd=optimize:clear`
   - Cache config: `?cmd=config:cache`
   - Cache route: `?cmd=route:cache`
   - Cache view: `?cmd=view:cache`
   - Run migration: `?cmd=migrate --force`

4. **Setelah selesai, HAPUS file `artisan-helper.php` untuk keamanan!**

## 🔒 Keamanan

**PENTING:** 
- **GANTI secret key** di kedua file sebelum upload!
- **HAPUS file** setelah selesai digunakan!
- Jangan commit file ini ke git (sudah di .gitignore)

### Cara Mengganti Secret Key

Edit file `clear-cache.php`:
```php
$allowedSecret = 'clear-cache-2024'; // GANTI dengan password yang kuat!
```

Edit file `artisan-helper.php`:
```php
$allowedSecret = 'artisan-helper-2024'; // GANTI dengan password yang kuat!
```

Gunakan password yang kuat dan unik, contoh:
- `my-secret-key-2024-xyz123`
- `company-name-cache-2024`
- Atau generate random string

## 📋 Checklist Clear Cache

Setelah update aplikasi di hosting:

- [ ] Upload file `clear-cache.php` ke `public/`
- [ ] Akses via browser dengan secret key
- [ ] Pilih "Clear + Optimize" jika perlu
- [ ] Verifikasi semua commands berhasil
- [ ] **HAPUS file `clear-cache.php`**

## 🛠️ Troubleshooting

### Error: "Access Denied"
- Pastikan parameter `secret` sudah benar
- Cek secret key di file sudah sesuai

### Error: "Command not found" atau "Artisan not found"
- Pastikan file `artisan` ada di root folder (satu level di atas `public/`)
- Cek path di script sudah benar

### Error: "Permission denied"
- Pastikan folder `storage/` dan `bootstrap/cache/` memiliki permission 775
- Cek ownership folder sesuai dengan user web server

### Cache masih tidak clear
- Coba hapus manual folder `bootstrap/cache/` (kecuali file `.gitignore`)
- Coba hapus manual folder `storage/framework/cache/`
- Restart web server jika memungkinkan

## 💡 Tips

1. **Gunakan Clear Cache setelah:**
   - Update code
   - Update config file
   - Update .env
   - Install/update composer packages

2. **Gunakan Optimize untuk:**
   - Production environment
   - Setelah semua update selesai
   - Untuk meningkatkan performa

3. **Jangan Optimize saat development:**
   - Akan menyulitkan debugging
   - Perubahan config tidak langsung terlihat

## 🔄 Workflow Update di Shared Hosting

1. **Upload file baru** ke hosting
2. **Clear cache:**
   ```
   https://yourdomain.com/clear-cache.php?secret=your-secret
   ```
3. **Run migration (jika ada):**
   ```
   https://yourdomain.com/artisan-helper.php?secret=your-secret&cmd=migrate --force
   ```
4. **Optimize (untuk production):**
   ```
   https://yourdomain.com/clear-cache.php?secret=your-secret&optimize=yes
   ```
5. **HAPUS kedua file helper**

## 📞 Alternatif: cPanel Terminal

Jika hosting Anda memiliki **cPanel Terminal**:

1. Login ke cPanel
2. Buka **Terminal** atau **SSH Access**
3. Jalankan commands:
   ```bash
   cd /path/to/your/app
   php artisan config:clear
   php artisan cache:clear
   php artisan route:clear
   php artisan view:clear
   php artisan optimize:clear
   ```

## ⚠️ Catatan Penting

- Script ini **hanya untuk shared hosting tanpa SSH**
- Jika ada SSH access, gunakan SSH langsung (lebih aman)
- **Selalu hapus file helper setelah digunakan**
- Jangan commit file helper ke repository
- Gunakan HTTPS untuk akses script (jika memungkinkan)

---

**Selamat menggunakan! 🚀**

