Konvensi

Yii mendukung konvensi di atas konfigurasi. Dengan mengikuti konvensi maka seseorang bisa membuat aplikasi Yii yang canggih tanpa harus menulis dan mengatur konfigurasi yang rumit. Tentunya, Yii masih dapat dikustomisasi dalam hampir setiap aspek dengan konfigurasi bila diperlukan.

Di bawah ini dijelaskan konvensi yang direkomendasikan untuk pemrograman Yii. Demi kenyamanan, kami asumsikan bahwa WebRoot adalah direktori di mana aplikasi Yii diinstalasi.

1. URL

Secara standar, Yii mengenali URL dengan format berikut:

http://hostname/index.php?r=ControllerID/ActionID

Variabel GET r merujuk pada rute yang bisa diurai oleh Yii menjadi controller dan aksi. Jika ActionID dihilangkan, controller akan mengambil aksi default (didefinisikan via CController::defaultAction); dan jika ControllerID juga tidak ada (atau variabel r tidak ada), aplikasi akan menggunakan kontoler default (didefinsikan via CWebApplication::defaultController).

Dengan bantuan CUrlManager, memungkinkan URL dibuat dan dikenal lebih ramah-SEO, seperti http://hostname/ControllerID/ActionID.html. Fitur ini dicakup secara rinci dalam URL Management.

2. Kode

Yii merekomendasikan penamaan variabel, fungsi dan tipe kelas dalam camel case (kata kapital) yang mengkapitalkan setiap huruf pertama pada nama dan menggabungkannya tanpa spasi. Semua huruf depan pada nama variabel dan fungsi harus dalam huruf kecil, untuk membedakannya dari nama kelas (contoh $basePath, runController(), LinkPager). Untuk variabel anggota kelas private, direkomendasikan untuk mengawali namanya dengan karakter garis bawah (contoh $_actionList).

Karena namespace tidak didukung oleh PHP sebelum versi 5.3.0, direkomendasikan kelas dinamai dalam cara yang unik guna menghindari konflik nama dengan kelas pihak-ketiga. Untuk alasan ini, semua kelas Yii framework diawali dengan huruf "C".

Aturan khusus untuk nama kelas controller adalah harus diakhiri dengan kata Controller. Kemudian ID controller didefinisikan sebagai nama kelas dengan huruf pertamanya dalam huruf kecil dan kata Controller dibuang. Sebagai contoh, kelas PageController akan memiliki ID page. Aturan ini membuat aplikasi lebih aman. Ini juga menjadikan URL yang terkait dengan controller sedikit lebih bersih (contoh /index.php?r=page/index daripada /index.php?r=PageController/index).

3. Konfigurasi

Konfigurasi adalah sebuah array pasangan kunci-nilai(key-value). Setiap kunci mewakili nama properti objek yang dikonfigurasi, dan setiap nilai merupakan nilai awal properti tersebut. Sebagai contoh, array('name'=>'My application', 'basePath'=>'./protected') menginisialisasi properti name dan basePath ke nilai array terkait.

Setiap properti objek yang bisa ditulis dapat dikonfigurasi. Jika tidak dikonfigurasi, properti akan mengambil nilai default. Ketika mengkonfigurasi sebuah properti, tidak ada salahnya untuk membaca dokumentasi terkait agar nilai awal dapat diberikan dengan benar.

4. File

Konvensi penamaan dan penggunaan file tergantung pada tipenya.

File Kelas harus dinamai sesuai kelas publik di dalam file tersebut. Sebagai contoh, kelas CController pada file CController.php. Kelas publik maksudnya adalah kelas yang bisa dipakai oleh kelas lain. Setiap file kelas harus berisi paling banyak hanya satu kelas publik. Kelas Private (kelas yang hanya dipakai oleh satu kelas publik) bisa berada dalam file yang sama dengan kelas publik.

File view (tampilan) harus dinamai berdasarkan nama view. Sebagai contoh, tampilan index ada dalam file index.php. File view adalah file skrip PHP yang berisi kode HTML dan PHP terutama untuk keperluan menampilkan.

File konfigurasi bisa dinamai secara sembarang. File konfigurasi adalah skrip PHP yang bertujuan untuk mengembalikan sebuah array terkait yang mewakili konfigurasi.

5. Direktori

Secara default, Yii mengambil asumsi pada satu set direktori yang dipakai untuk berbagai keperluan. Masing-masing bisa dikustomisasi jika diperlukan.

  • WebRoot/protected: ini adalah basis direktori aplikasi yang menampung semua skrip PHP dan file data yang sensitif . Yii memiliki alias standar bernama application yang dikaitkan dengan path ini. Direktori ini dan semua yang ada di bawahnya dilindungi dari pengaksesan pengguna Web. Bisa dikustomisasi via CWebApplication::basePath.

  • WebRoot/protected/runtime: direktori ini menampung file privat sementara yang dibuat selama menjalankan aplikasi. Direktori ini harus bisa ditulis oleh server Web. Dapat dikustomisasi melalui CApplication::runtimePath.

  • WebRoot/protected/extensions: direktori ini menampung semua extension dari pihak ketiga. Dapat dikustomisasi melalui CApplication::extensionPath. Yii memiliki alias default bernama ext untuk mewakilinya.

  • WebRoot/protected/modules: direktori ini menampung semua module aplikasi, masing-masing diwakili oleh subdirektori.

  • WebRoot/protected/controllers: direktori ini menampung semua file kelas controller. Dapat dikustomisasi melalui CWebApplication::controllerPath.

  • WebRoot/protected/views: direktori ini menampung semua file tampilan, termasuk tampilan controller, tampilan tata letak dan tampilan sistem. Dapat dikustomisasi melalui CWebApplication::viewPath.

  • WebRoot/protected/views/ControllerID: direktori ini menampung file tampilan untuk satu kelas controller. Di sini, ControllerID merupakan ID controller. Dapat dikustomisasi melalui CController::getViewPath.

  • WebRoot/protected/views/layouts: direktori ini menampung semua file tampilan tata letak. Dapat dikustomisasi melalui CWebApplication::layoutPath.

  • WebRoot/protected/views/system: direktori ini menampung semua file tampilan sistem. Tampilan sistem adalah template yang dipakai dalam menampilkan exception (exception) dan kesalahan. Dapat dikustomisasi melalui CWebApplication::systemViewPath.

  • WebRoot/assets: direktori ini menampung file aset yang dipublikasikan. File asset adalah file privat yang dapat diterbitkan agar bisa diakses oleh pengguna Web. Direktori ini harus bisa ditulis oleh proses server Web. Dapat dikustomisasi melalui CAssetManager::basePath.

  • WebRoot/themes: direktori ini menampung berbagai tema yang dapat diterapkan pada aplikasi. Setiap subdirektori mewakili satu tema yang namanya adalah nama subdirektori. Dapat dikustomisasi melalui CThemeManager::basePath.

6. Basis Data

Kebanyakan aplikasi Web didukung oleh basis data. Kami mengusulkan beberapa cara terbaik berupa konvensi penamaan tabel dan kolom database. Harap diingat bahwa konvensi ini tidak wajib dalam Yii.

  • Kolom maupun tabel pada database dinamakan dalam huruf kecil.

  • Kata-kata dalam nama harus dipisahkan dengan garis bawah (misalnya product_order).

  • Khusus jika menggunakan nama dalam bahasa Inggris, untuk nama tabel, Anda dapat menggunakan nama tunggal (singular) atau jamak (plural) tetapi jangan dua-duanya. Supaya sederhana kami menyarankan menggunakan nama dalam bentuk tunggal.

  • Nama tabel bisa diawali dengan prefiks yang umum seperti tbl_. Cara ini sangat berguna terutama jika tabel-tabel suatu aplikasi berbaur dalam satu tabel dengan tabel-tabel aplikasi lain. Dua kumpulan tabel itu dapat dipisahkan dengan menggunakan nama tabel dengan prefiks yang berbeda.

$Id: basics.convention.txt 3225 2011-05-17 23:23:05Z alexander.makarow $

Be the first person to leave a comment

Please to leave your comment.