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