Membaca file DBF dengan Yii Framework

Setelah memposting tutorial-tutorial codeigniter, sekarang sudah saatnya kita beralih ke salah satu framework terbaik saat ini. Sebenarnya, saya sendiri sudah mempelajari Yii Framework sejak beberapa bulan lalu. Diawali dengan adanya tugas membuat sistem di kantor, kemudian dipengaruhi juga dari seorang kawan yang sudah cukup lama menekuni dunia Yii Framework. Dan memang benar, setelah mempelajari cara kerja dan penggunaannya, framework ini jauh lebih powerful dibanding codeigniter.

OK, langsung to the point saja. Untuk membaca file dengan format dbf, kita dapat memanfaatkan class PHPXBase yang telah dibuat oleh Erwin Kooi. Kawan-kawan bisa mendownload class file-nya di http://www.phpkode.com/scripts/item/phpxbase/. Karena akan menggunakan class ini ke dalam Yii, format penggunaan class juga perlu kita sesuaikan.

Yang pertama adalah penggunaan nama file. Di dalam Yii, nama class harus sama dengan nama file-nya. Sedangkan class PHPXBase yang telah didownload memiliki 4 class file yang nama filenya berbeda dengan nama class-nya sendiri. Jika yang kita perlukan hanya cara membaca file, class yang dipakai hanya Table.class.php saja. Di dalam file Table.class.php akan terlihat bahwa nama class-nya adalah XBaseTable. Oleh karena itu, file Table.class.php kita rename dengan XBaseTable.php. Begitu juga dengan class file yang lain. Kesemua file tersebut diletakkan dalam sebuah folder yang diberi nama phpxbase. Setelah di-rename, letakkan folder phpxbase ke dalam project yii di dalam folder extensions.

Kedua adalah meload class dengan modifikasi file protected/config/main.php. Tambahkan satu baris untuk mengimport class dalam indeks array import seperti berikut ini.

'import'=>array(
     //Other libraries
     'ext.phpxbase.*',
),

Setelah itu, kita baru bisa memanfaatkan class untuk membaca file dbf dengan Yii. Sebagai contoh, buat folder dbf di dalam root project dan letakkan sebuah file dbf di dalamnya untuk dibaca oleh program. Misalkan file kita beri nama contoh.dbf.

Di dalam salah satu controller copy code sebagai berikut

$table = new XBaseTable(Yii::app()->basePath.'/../dbf/contoh.dbf');
$table->open();

/* print some header info */
echo "version: ".$table->version."<br />";
echo "foxpro: ".($table->foxpro?"yes":"no")."<br />";
echo "modifyDate: ".date("r",$table->modifyDate)."<br />";
echo "recordCount: ".$table->recordCount."<br />";
echo "headerLength: ".$table->headerLength."<br />";
echo "recordByteLength: ".$table->recordByteLength."<br />";
echo "inTransaction: ".($table->inTransaction?"yes":"no")."<br />";
echo "encrypted: ".($table->encrypted?"yes":"no")."<br />";
echo "mdxFlag: ".ord($table->mdxFlag)."<br />";
echo "languageCode: ".ord($table->languageCode)."<br />";

/* html output */
echo "<br /><table border=1>";

/* print column names */
echo "<tr>";
foreach ($table->getColumns() as $i=>$c) {
	 echo "<td>".$c->getName()." (".$c->getType()." ".$c->getLength().")</td>";
}
echo "</tr>";

/* print records */
while ($record=$table->nextRecord()) {
    echo "<tr>";
    foreach ($table->getColumns() as $i=>$c) {
       echo "<td>".$record->getString($c)."</td>";
    }

    echo "</tr>";
}
echo "</table>";

/* close the table */
$table->close();

Selamat mencoba :)

farid

Selamat datang dan salam kenal. Penulis merupakan lulusan Sekolah Tinggi Ilmu Statistik Jakarta jurusan Komputasi Statistik. Menekuni pemrograman web khususnya PHP dengan Yii Framework. Penggemar musik instrumen dan film Doraemon. Berasal dari Kota Lumpia Semarang dan pernah bertugas menjadi Staf Produksi dan IPDS di BPS Kabupaten Melawi. Sejak tahun 2016, mulai bertugas sebagai Staf Pengolahan Data di BPS Provinsi Kalimantan Barat

You may also like...

  • http://mrhandsblog.blogspot.com mrhands

    Mantep mas bro

  • iceinrain

    kak,, itu kan kalo baca file,, trus kalo masukin data k mysql n data yg dimasukkin kbbrp tabel gmn?

  • MF SUCIANTO

    Pak, kalo mau query atau memilih satu record saja yang tampil saat membaca file dbf nya gimana ya ?