Yii2 framework backup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

6.8 KiB

Komponen Aplikasi

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 yii\db\Connection, dan \Yii::$app->cache untuk mengambil yii\caching\Cache 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.

Bootstrap Components

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 yii\base\Application::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"
        ],
    ],
]

Component Aplikasi Inti

Yii menentukan seperangkat component aplikasi inti dengan ID tetap dan konfigurasi default. Sebagai contoh, component yii\web\Application::request digunakan untuk memperoleh informasi tentang request dari pengguna dan merubahnya menjadi route. Component yii\base\Application::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.