Objek Aplikasi (Application) adalah service locators. Objek ini menampung seperangkat
apa yang kita sebut sebagai komponen aplikasi yang menyediakan berbagai layanan untuk menangani proses request. Sebagai contoh,
component urlManager
bertanggung jawab untuk menentukan route dari request menuju controller yang sesuai;
component db
menyediakan layanan terkait database; dan sebagainya.
Setiap component aplikasi memiliki sebuah ID yang mengidentifikasi dirinya secara unik dengan component aplikasi lainnya di dalam aplikasi yang sama. Anda dapat mengakses component aplikasi melalui expression berikut ini:
\Yii::$app->componentID
Sebagai contoh, anda dapat menggunakan \Yii::$app->db
untuk mengambil koneksi ke DB,
dan \Yii::$app->cache
untuk mengambil cache utama yang terdaftar dalam aplikasi.
Sebuah component aplikasi dibuat pertama kali pada saat objek tersebut pertama diakses menggunakan expression di atas. Pengaksesan berikutnya akan mengembalikan objek component yang sama.
Component aplikasi bisa merupakan objek apa saja. Anda dapat mendaftarkannya dengan mengatur property yii\base\Application::$components pada konfigurasi aplikasi. Sebagai contoh,
[
'components' => [
// mendaftarkan component "cache" menggunakan nama class
'cache' => 'yii\caching\ApcCache',
// mendaftaran component "db" menggunakan konfigurasi array
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=demo',
'username' => 'root',
'password' => '',
],
// mendaftaran component "search" menggunakan anonymous function
'search' => function () {
return new app\components\SolrService;
},
],
]
Info: Walaupun anda dapat mendaftarkan component aplikasi sebanyak yang anda inginkan, anda harus bijaksana dalam melakukan hal ini. Component aplikasi seperti layaknya variabel global. Menggunakan component aplikasi yang terlalu banyak dapat berpotensi membuat kode anda menjadi rumit untuk diujicoba dan dikelola. Dalam banyak kasus, anda cukup membuat component lokal dan menggunakannya pada saat diperlukan.
Seperti yang disebutkan di atas, sebuah component aplikasi akan dibuat ketika component diakses pertama kali. Jika tidak diakses sepanjang request diproses, objek tersebut tidak akan dibuat. Terkadang, anda ingin membuat objek component aplikasi tersebut untuk setiap request, walaupun component tersebut tidak diakses secara eksplisit. Untuk melakukannya, anda dapat memasukkan ID component tersebut ke property bootstrap dari objek Application.
Sebagai contoh, konfigurasi aplikasi di bawah ini memastikan bahwa objek component log
akan selalu dibuat disetiap request:
[
'bootstrap' => [
'log',
],
'components' => [
'log' => [
// Konfigurasi untuk component "log"
],
],
]
Yii menentukan seperangkat component aplikasi inti dengan ID tetap dan konfigurasi default. Sebagai contoh, component request digunakan untuk memperoleh informasi tentang request dari pengguna dan merubahnya menjadi route. Component db merepresentasikan sebuah koneksi ke database yang bisa anda gunakan untuk menjalankan query ke database. Dengan bantuan component inti inilah maka aplikasi Yii bisa menangani request dari pengguna.
Dibawah ini adalah daftar dari component aplikasi inti. Anda dapat mengatur dan memodifikasinya seperti component aplikasi pada umumnya. Ketika anda mengatur component aplikasi inti, jika anda tidak mendefinisikan class-nya, maka class default yang akan digunakan.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.