Tags

, , ,

Lanjutan dari tulisan sebelumnya Use Yii as Library. Selain sebagai framework, Yii juga bisa dimanfaatkan sebagai library yaitu dengan memanfaatkan sebagian saja fitur-fitur Yii pada aplikasi atau framework lain.

CodeIgniter adalah framework PHP yang didesain untuk memiliki ukuran yang kecil. CI dibuat untuk para developer yang membutuhkan tool yang sederhana serta elegan. Tidak seperti framework-framework terbaru yang hadir dengan fitur ORM (Active Record), CI absen dalam fitur ini. Karena itu jika ingin memanfaatkan ORM, kita perlu mengambilnya dari library lain.

Sebenarnya, selain Yii, ada beberapa library ORM lain yang lebih terkenal seperti doctrine dan eloquent. Tetapi kita gunakan Yii karena Fiturnya yang lengkap dan performanya yang bagus. Berikut langkah-langkahnya.

Install Yii.

Ada 2 cara untuk install Yii, yaitu dengan composer atau download archive. Untuk install lewat composer, cukup tambahkan required yiisoft/yii2 do composer.json lalu composer update. Untuk install dari archive, silakan download Yii dari https://github.com/yiisoft/yii2-framework/archive/2.0.10.zip.

Edit file index.php

Agar Yii dapat digunakan. Kita harus menambahkannya di entry script aplikasi CI. Untuk itu tambahkan kode berikut dalam file index.php

// setup Yii as library
// letakkan paling bawah sebelum require core/CodeIgniter.php
define('YII_ENABLE_ERROR_HANDLER', false);
require 'path/to/yii2/Yii.php'; // sesuaikan path-nya
new yii\web\Application([
    'id' => 'ci-app',
    'basePath' => $application_folder,
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'sqlite:@app/cache/data.sqlite', // sesuaikan koneksi db-nya
        ]
    ]
]);
/*
 * --------------------------------------------------------------------
 * LOAD THE BOOTSTRAP FILE
 * --------------------------------------------------------------------
 *
 * And away we go...
 */
require_once BASEPATH.'core/CodeIgniter.php';

Letakkan kode require 'Yii2.php' tepat sebelum require 'core/CodeIgniter.php'. Setelah itu sesuaikan konfigurasi untuk koneksi databasenya.
Dalam contoh kita hanya men-setting komponen db. Kita bisa juga men-setting komponen lain seperti cache, tetapi sifatnya opsional.

Menggunakan Active Record di CI.

Untuk menggunakan AR, pertama-tama kita harus buat modelnya. Untuk contoh, kita buat model User di folder application/models.

namespace app\models;

class User extends \yii\db\ActiveRecord
{
    public static function tableName()
    {
        return 'user';
    }
}

(Perhatikan bahwa Yii menggunakan namespace)

Model ini dapat kita panggil dari controller dengan cara

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->view('welcome_message');
    }

    public function show()
    {
        $users = app\models\User::find()->all();
        $this->load->view('show_user', ['users' => $users]);
    }
}

Lalu di view-nya kita buat

Berikut adalah penampakan hasilnya
screenshot-from-2016-11-24-14-46-15

Create, Update dan Delete

Selain untuk menampilkan. Kita juga bisa memanfaatkan AR untuk create new record, update record dan juga delete record. Secara umum kode yang dipakai adalah seperti berikut

use app\models\User;


// create
$model = new User();
$model->attributes = $_POST;
if($model->save()){
    // do something
}


// update
$model = User::findOne($_GET['id']);
$model->attributes = $_POST;
if($model->save()){
    // do something
}


// delete
$model = User::findOne($_GET['id']);
$model->delete();

Demikian tulisan singkat ini, semoga ada manfaatnya. Berikutnya Isyaallah kita akan membahas layouting/templating view di CI menggunakan component View.

Advertisements