Apa Kegunaan Folder Assets dalam Yii Framework?
March 7th, 2012, Written by: | Categories: Programming, Yii Framework

Folder “assets” merupakan folder yang secara default tersedia di dalam Yii. Programmer tidak akan pernah mengutak-atik isi folder ini. Jika diperhatikan biasanya yang terdapat di dalam folder itu adalah kumpulan folder dengan nama yang terdiri dari karakter alfanumerik yang tidak bermakna (dan kita juga tidak perlu peduli). Isi dari folder-folder tersebut adalah kumpulan file gambar, JavaScript ataupun file CSS.

Folder Assets Yii

Hanya Tuhan dan Qiang Xue yang tahu apa arti nama folder-folder itu.

Karena melihat file-file seperti itulah menjadi tanda tanya bagi sebagian pemula Yii. Mengapa Yii sengaja membuat folder “assets”? Bukankah kita bisa saja membuat folder tersendiri di webroot? Sebenarnya bisa saja kita membuat folder “css”, “js” dan “images” di webroot.

Folder CSS, JS dan Images

Saya tidak perlu folder "assets". Saya cukup bikin folder "css", "js", "images" saja.

Tetapi, tunggu dulu. Tentu saja kita bisa membuat folder “css”, “images” dan “js” di webroot apabila file tersebut diperlukan di banyak tempat. Namun, bagaimana jadinya jika kita membuat sebuah extension yang memerlukan JavaScript, dan extension ini hanya dipakai di halaman Home saja? Bagaimana jika satu extension butuh jQuery versi 1.3.2 dan satu lagi butuh jQuery versi 1.4.2?

Akan tidak efektif jika kita meletakkan file script-nya ke dalam folder webroot dalam kondisi seperti di atas. Mengapa?

Pertama, jika extension yang kita pakai sangat banyak, bukankah ada kemungkinan konflik nama JavaScript antar satu extension dengan extension lainnya jika kita tidak hati-hati. Kedua, jika kita ingin memakai extension itu di projek yang lain, bukankah cukup menyulitkan karena letak koding extension dan JavaScriptnya terpisah? Kalau JavaScript diletakkan di dalam folder extension, nantinya malah tidak dapat diakses, karena Yii sudah mengatur sedemikian rupa supaya tidak ada yang bisa mengakses langsung file yang ada di dalam folder “protected”.

Oleh karena itu, Yii menggunakan folder “assets” untuk menjawab permasalahan di atas. Ketika membuat extension, kita taruh file CSS, JavaScript dan gambar ke dalam folder extension juga. Masalah tidak dapat diakses langsung dapat diselesaikan dengan menggunakan Asset Manager milik Yii. Nantinya kita menggunakan CAssetManager untuk mempublikasikan (baca: meng-copy) file-file tersebut ke folder “assets”. Yii akan membuat folder dan memberikan nama alfanumerik sedemikian rupa sehingga tidak mungkin terjadi konflik antar extension.

Dikarenakan Yii akan terus menerus mempublikasikan file-file ke dalam folder “assets”, maka yang harus diperhatikan oleh programmer adalah jangan pernah mengutak-atik koding JavaScript ataupun CSS yang ada di dalam “assets” karena pasti akan ditimpa. Jangan juga menambah file ke dalam “assets”. Jangan mereferensi langsung file yang ada di folder “assets”, misalnya seperti koding di bawah ini

 < img src="/assets/230d933f/myimages.png" alt="" / >

Tetapi kita boleh menghapus isi folder “assets” sesuka kita. Apalagi ketika upgrade versi Yii, disarankan untuk menghapus isi folder “assets”. Yii akan otomatis mempublikasikan file-file aset ke folder “assets” jika kosong.

Sekian penjelasan mengenai folder “assets”. Jadi kalau misalnya suatu hari ingin mengutak-atik tampilan CGridView jangan pernah ubah di file “assets”-nya. Jika ingin mengetahui lebih lanjut mengenai bagaimana caranya mempublikasikan file-file ke dalam folder “assets”, silahkan membaca artikel Cara Publikasi Asset dengan Menggunakan CAssetManager .

More about: ,

3 Responses to “Apa Kegunaan Folder Assets dalam Yii Framework?”

  1. AIMAGU

    Gan, gimana caranya supaya Assets tidak tercetak terus alias ketika kita menjalankan yii maka assets akan kosong dan tidak akan menambah file2 css,js,dll itu?

    Reply
    • Garry

      Sejauh yang ane ketahui, itu tidak memungkinkan Gan. Soalnya secara default, widget-widget di Yii seperti CGridView ini ambil JS dan CSS dari Assets. Jadi tidak ada cara untuk membuat folder Assets tetap kosong.

      Reply

Leave a Reply