Memanfaatkan Fitur Trace pada Yii
May 25th, 2012, Written by: | Categories: Opinion, Programming, Yii Framework

Terkadang dalam kasus tertentu, ingin men-debug aplikasi dengan menggunakan var_dump() dan die() bukanlah pilihan. Biasanya dikarenakan kita tidak bisa atau tidak boleh die() suatu aplikasi. Nah, apabila kita tidak dapat menghentikan aplikasi, maka solusi dari kita tentunya adalah menuliskan hasil dumping variable ke dalam file.

Di dalam Yii kita bisa memanfaatkan fungsi log() dan trace() pada Yii. Sebetulnya keduanya hampir sama, bahkan Yii::trace(‘nilai’, ‘application.controller.testing’) sebetulnya sama dengan sintaks Yii::log(‘nilai’, ‘trace’, ‘application.controller.testing’). Yang pasti, trace() tidak akan berfungsi apabila kita di bagian index.php (atau disebut entry-script dalam panduannya) kita set YII_DEBUG menjadi false.

Nah bagaimana caranya supaya kita bisa menggunakan fungsi trace()?

Pertama pastikan dulu di webroot/config/main.php kita sudah menentukan CLogRouter-nya. Kita harus memastikan fungsi trace() kita ditulis ke file (bisa juga diarahkan ke email, Firebug, Web atau database). Jadi kita tulis sintaks berikut:

'log'=>array(
            'class'=>'CLogRouter',
                ....
                array(
                    'class' => 'CFileLogRoute',
                    'levels' => 'trace',
                    'categories'=>'application.controllers.testing',
                ),
                ....
            ),
        ),

Pada tulisan di atas maksudnya, kalau Yii menemukan sintaks Yii::trace() di mana parameter ketiganya adalah “application.controllers.testing” maka akan diarahkan ke file. Lokasi file biasanya di webroot/protected/runtime/application.log. Penamaan categories di dalam file konfigurasi itu terserah, asal bentuknya pakai format xxx.yyy.zzz.

Setelah selesai mengatur konfigurasi kita tinggal mencoba menggunakannya. Anda bisa mencoba menaruh di salah satu controller dengan sintaks berikut:

$a = 'testing';
Yii::trace(CVarDumper::dumpAsString($a), 'application.controllers.testing');

Untuk men-dump nilai variabel kita bisa saja menggunakan fungsi var_dump() dari PHP. Hanya saja fungsi var_dump() biasanya tidak sanggup menangani nilai rekursif. Oleh karena itu, penulis menyarankan menggunakan CVarDumper. Kita dump nilai dari variabel $a. Dan jangan lupa pada parameter kedua, yakni category, tulis sama persis seperti di file konfigurasi yaitu “application.controllers.testing”.

Setelah itu, silahkan jalankan aplikasinya. Di layar tidak akan terlihat apa-apa. Tetapi nantinya di bagian file application.log akan terlihat hasil dari variabel $a. Demikianlah caranya jika ingin men-debug aplikasi, tetapi tidak bisa menghentikan aplikasi di tengah-tengah dengan fungsi die().

More about: , , ,

One Response to “Memanfaatkan Fitur Trace pada Yii”

Leave a Reply