Belajar Kode Program

Blog belajar menulis kode program dan aplikasi komputer

Sabtu, 14 Januari 2017

5 Konsep Minimal Memahami Yii Framework

Yii Framework adalah salah satu framework PHP yang menggunakan pendekatan (Model-View-Controller) MVC dalam struktur aplikasinya. Ada setidaknya 5 (lima) konsep minimal agar Anda dapat menguasai Yii Framework ini lebih dalam. Artikel ini berdasarkan pengalaman kami dalam menggunakan Yii Framework versi 2 untuk pengerjaan beberapa program aplikasi berbasis web. Semoga dengan kelima hal dasar tersebut, Anda dapat melanjutkan belajar secara otodidak lebih dalam tentan framework PHP yang luar biasa ini.

Struktur Aplikasi

Perhatikan gambar berikut:


Beberapa folder yang penting untuk pemula ketahui adalah:

  • Folder config. Berisi file-file konfigurasi, baik untuk basis data maupun yang lainnya.
  • Folder controllers. Berisi file-file controller pada konsep M-V-C(ontroller)
  • Folder models. Berisi file-file model pada konsep M(odel)-V-C
  • Folder views. Berisi file-file view pada konsep M-V(iew)-C
  • Folder web. Berisi file-file yang dapat diakses langsung oleh pengunjung web.

Sistem Routing

Sistem routing pada Yii menggunakan pendekatan controller. Artinya, melalui controller kita bisa memanggil URL. Berikut ini adalah tampilan dari file SiteController.php (kita sebut dengan kontroller Site).


Jadi, setiap penamaan fungsi pada file SiteController dapat diakses melalui URL ?r=namacontroller/namafungsi_action.

Nama fungsi action yang dimaksud adalah bahwa nama fungsi yang dapat dipanggil melalui URL harus diawali dengan kata action. Contoh pada gambar di atas adalah actionIndex dan actionLogin.

Jadi kalau misalnya kita punya controller bernama UnggahController, dan ada fungsi di dalamnya yang bernama actionSimpan, berarti kita bisa memanggilnya dengan URL http://locahost/?r=unggah/simpan. Sederhana bukan?

Pengelolaan Data Pengguna

Yii menggunakan model User (filenya models/User.php) dalam mengelola sesi pengguna. Namun, Yii membungkusnya untuk kita dalam bentuk Yii::$app->user sehingga kita mudah menggunakannya di mana saja dalam semua file php yang kita buat. Untuk menggunakannya kita hanya perlu mengetikkan beberapa koleksi sintaks berikut:

Mengecek apakah pengguna sudah login atau belum:

if(Yii::$app->user->isGuest)
    //berarti belum login
else
    //berarti sudah login

Melihat data pengguna, tentunya setelah login. Jika belum login kita memanggil dengan perintah berikut, hasilnya bisa error:

$username = Yii::$app->user->identity->username;
$email = Yii::$app->user->identity->email;

Selanjutnya, kita dapat mengembangkan data pengguna melalui tabel di database yang dijadikan rujukan model User. Misalnya di tabel user kita buat field bernama url, kita bisa memanggil datanya dengan sintaks Yii::$app->user->identity->url.

Active Record

Untuk bekerja dengan basis data, Yii menggunakan sebuah active record yang cukup fleksibel dalam menangani database. Berikut beberapa sintaks dasar yang pasti akan banyak digunakan:

Membuat data baru pada tabel supplier

$customer = new Supplier(); //nama model
$customer->name = 'Belakode';
$customer->save();

Mencari satu baris data pada tabel supplier

$supplier = Supplier::find()
    ->where(['id' => 123])
    ->one();

atau untuk memanggil semua data

$suppliers = Supplier::find()
    ->where(['status' => Supplier::STATUS_ACTIVE])
    ->orderBy('id')
    ->all();

Selengkapnya, Anda bisa pelajari konsep ini di laman resminya di sini.

Pengelolaan Form

Form adalah sesuatu yang sangat penting dalam aplikasi web. Untuk itu, yang pertama perlu Anda coba adalah bagaimana menggunakan tool Gii (coba buka di http://localhost/?r=gii). Intinya, untuk mengelola form, di bagian file controller harus ada sintaks seperti berikut:

if(Yii::$app->request->post())
{
    $nama= Yii::$app->request->post('nama');
    //lanjutkan proses di sini jika ada data dikirim dari suatu formulir dengan metode HTTP POST.
}

Demikian beberapa konsep dasar yang semestinya Anda ketahui untuk membuka jalan lebih panjang memahami dan menguasai Yii Framework.

Tidak ada komentar:

Posting Komentar