Server-Side Includes (SSI)
Pengenalan
Server-Side Includes (SSI) adalah fitur yang memungkinkan Anda untuk menyertakan konten dari file lain ke dalam template. Fitur ini sangat berguna untuk membuat template yang modular dan dapat digunakan kembali.
Sintaks Dasar
Struktur Direktori
templates/
├── components/
│ ├── header.html
│ ├── footer.html
│ └── sidebar.html
├── layouts/
│ └── default.html
└── pages/
└── home.html
Penggunaan
1. Basic Include
ssi_includes
{content}
2. Nested Includes
Fitur Utama
- Modular Components: Memecah template menjadi komponen yang dapat digunakan kembali
- Nested Support: Mendukung include bertingkat/nested
- Path Flexibility: Mendukung path relatif dan absolut
- Performance Optimized: Include diproses saat compile-time
Best Practices
- Organisir komponen dalam direktori yang terstruktur
- Gunakan nama file yang deskriptif
- Hindari include yang terlalu dalam (deep nesting)
- Pastikan file yang di-include ada sebelum rendering
Advanced Usage
1. Conditional Includes
{/if}
2. Dynamic Components
$this->assignVar('widget_type', 'calendar');
3. Layout Structure
{content}
Note: SSI Includes diproses sebelum variabel template, sehingga Anda dapat menggunakan variabel template di dalam file yang di-include.
Troubleshooting
- Pastikan path file yang di-include benar dan file tersedia
- Periksa permission file jika terjadi masalah akses
- Hindari circular includes (file yang include dirinya sendiri)
- Gunakan path relatif dari root template untuk konsistensi
Security Considerations
- Validasi path file yang akan di-include
- Hindari include file dari input user tanpa validasi
- Batasi akses file hanya ke direktori template
- Gunakan proper file permissions