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.
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.
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
).
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.
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.
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.
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.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.