Agar Adnda mendapatkan pengalaman pertama dengan Yii, kami jelaskan dalam bab ini bagaimana
untuk membuat aplikasi pertama Yii. Kita akan menggunakan piranti bertenaga yiic
yang dapat dipakai dalam mengotomasi pembuatan tugas-tugas tertentu. Demi kenyamanan,
kita beranggapan bahwa YiiRoot adalah direktori di mana Yii diinstalasi, dan WebRoot
adalah root dokumen oada server Web kita.
Jalankan yiic pada baris perintah seperti berikut:
% YiiRoot/framework/yiic webapp WebRoot/testdrive
Catatan: Saat menjalankan
yiicpada Mac OS, Linux atau Unix, Anda harus mengubah perijinan fileyiicagar bisa dijalankan. Alternatif lain, Anda bisa menjalankan piranti seperti berikut,% cd WebRoot/testdrive % php YiiRoot/framework/yiic.php webapp WebRoot/testdrive
Ini akan membuat kerangka aplikasi Yii di bawah direktori
WebRoot/testdrive. Aplikasi memiliki struktur direktori yang
diperlukan oleh umumnya aplikasi Yii.
Tanpa harus menulis satu baris kode pun, kita dapat menguji aplikasi pertama Yii kita dengan mengakses URL berikut dalam Web browser:
http://hostname/testdrive/index.php
Seperti yang kita lihat, aplikasi memiliki tiga halaman: halaman utama, halaman kontak dan halaman masuk. Halaman utama menampilkan beberapa informasi mengenai aplikasi dan juga status masuk pengguna, halaman kontak menampilkan formulir kontak yang dapat diisi pengguna untuk mengirimkan permintaannya, halaman masuk mengijinkan pengguna untuk mengotentikasi sebelum mengakses konten yang sesuai. Perhatikan foto layar berikut agar lebih jelas.
Halaman Home

Halaman Contact

Halaman Contact dengan kesalahan input

Halaman Contact dengan sukses

Halaman Login

Diagram berikut memperlihatkan struktur direktori pada aplikasi kita Silahkan lihat Konvensi utuk keterangan lebih rinci mengenai struktur ini.
testdrive/
   index.php                 File naskah entri aplikasi Web
   assets/                   berisi file resource yang diterbitkan
   css/                      berisi file CSS
   images/                   berisi file gambar
   themes/                   berisi tema aplikasi
   protected/                berisi file perlindungan aplikasi
      yiic                   naskah baris perintah yiic
      yiic.bat               naskah baris perintah untuk Windows
      commands/              berisi perintah 'yiic' yang dikustomisasi
         shell/              berisi perintah 'yiic shell' yang dikustomisasi
      components/            berisi komponen pengguna
         MainMenu.php        kelas widget 'MainMenu'
         Identity.php        kelas 'Identity' yang dipakai untuk otentikasi
         views/              berisi file view untuk widget
            mainMenu.php     file view file untuk widget 'MainMenu'
      config/                berisi file konfigurasi
         console.php         konfigurasi aplikasi konsol
         main.php            konfigurasi aplikasi Web
      controllers/           berisi file kelas kontroler
         SiteController.php  standar kelas kontroler
      extensions/            berisi ekstensi pihak-ketiga
      messages/              berisi terjemahan pesan
      models/                berisi file kelas model
         LoginForm.php       model formulir untuk aksi 'login'
         ContactForm.php     model formulir untuk aksi 'contact'
      runtime/               berisi file yang dibuat secara temporal
      views/                 berisi file kontroler tampilan dan tata letak
         layouts/            berisi file tampilan tata letak
            main.php         standar tata letak untuk semua tampilan
         site/               berisi file tampilan untuk kontroler 'site'
            contact.php      tampilan untuk aksi 'contact'
            index.php        tampilan untuk aksi 'index'
            login.php        tampilan untuk aksi 'login'
         system/             berisi file tampilan sistem
Umumnya aplikasi Web didukung oleh database. Aplikasi pengujian kita tidak
terkecuali. Untuk menggunakan database, pertama kita perlu memberitahu
aplikasi bagaimana untuk berhubungan denganya. Ini dilakukan dengan mengubah file
konfigurasi aplikasi WebRoot/testdrive/protected/config/main.php, seperti
terlihat di bawah ini:
return array(
    ......
    'components'=>array(
        ......
        'db'=>array(
            'connectionString'=>'sqlite:protected/data/source.db',
        ),
    ),
    ......
);Dalam contoh di atas, kita menambah entri db ke components, yang memerintahkan
aplikasi untuk menyambung ke database SQLite
WebRoot/testdrive/protected/data/source.db saat diperlukan.
Catatan: Untuk menggunakan fitur database Yii, kita perlu menghidupkan ekstensi PHP PDO dan ekstensi driver-tertentu PDO. Dalam aplikasi pengujian, kita perlu menghidupkan ekstensi
php_pdodanphp_pdo_sqlite.
Selanjutnya, kita perlu menyiapkan database SQLite agar konfigurasi di atas menjadi efektif. Menggunakan beberapa piranti administrasi SQLite, kita dapat membuat database dengan skema sebagai berikut:
CREATE TABLE User ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, username VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, email VARCHAR(128) NOT NULL );
Catatan: Jika Anda menggunakan database MySQL, Anda harus mengganti
AUTOINCREMENTdenganAUTO_INCREMENTdalam SQL di atas.
Demi kemudahan, kita hanya membuat satu tabel User dalam database kita. File
database SQLite disimpan sebagai
WebRoot/testdrive/protected/data/source.db. Catatan bahwa baik file maupun
direktori di mana ia berada harus dijadikan bisa ditulis oleh proses server Web,
karena dbutuhkan oleh SQLite.
Sekarang bagian penting. Kita ingin mengimplementasikan operasi CRUD (create, read,
update dan delete) untuk tabel User yang baru dibuat. Ini juga umumnya
diperlukan dalam praktek aplikasi.
Daripada mendapatkan masalah dengan penulisan kode sebenarnya, kita ingin menggunakan
piranti bertenaga yiic lagi untuk pembuatan kode secara otomatis bagi kita. Proses
ini juga dikenal sebagai scaffolding. Buka jendela baris perintah, dan jalankan perintah
yang terdaftar sebagai berikut,
% cd WebRoot/testdrive
% protected/yiic shell
Yii Interactive Tool v1.0
Silahkan ketik 'help' untuk bantuan. Ketik 'exit' untuk keluar.
>> model User
   generate User.php
Kelas 'User' sukses dibuat dalam file berikut:
    D:\wwwroot\testdrive\protected\models\User.php
Jika Anda mempunyai koneksi database 'db', Anda dapat mengujinya sekarang dengan:
    $model=User::model()->find();
    print_r($model);
>> crud User
   generate UserController.php
   generate create.php
      mkdir D:/wwwroot/testdrive/protected/views/user
   generate update.php
   generate list.php
   generate show.php
Crud 'user' sukses dibuat. Sekarang Anda dapat mengaksesnya via:
http://hostname/path/to/index.php?r=user
Dalam contoh di atas, kita menggunakan perintah yiic shell untuk berinteraksi dengan
kerangka aplikasi kita. Pada prompt, kita menjalankan dua sub-perintah: model User
dan crud User. Perintah pertama membuat kelas model untuk tabel User,
sementara perintah kedua membaca model User dan membuat kode yang diperlukan
oleh operasi CRUD.
Catatan: Anda mungkin menemukan kesalahan seperti "...could not find driver", meskipun pemeriksa persyaratan memperlihatkan bahwa Anda sudah menghidupkan PDO dan driver PDO terkait. Jika ini terjadi, Anda dapat mencoba menjalankan piranti
yiicsebagai berikut,% php -c path/ke/php.ini protected/yiic.php shelldi mana
path/ke/php.inimewakili file PHP ini yang benar.
Mari kita nikmati pekerjaan kita dengan melihatnya di URL berikut:
http://hostname/testdrive/index.php?r=user
Ini akan menampilkan sebuah daftar entri pengguna dalam tabel User. Karena tabel
kita kosong, tidak ada apapun yang terlihat saat ini.
Klik link New User pada halaman. Kita akan dibawa ke halaman masuk
jika kita belum masuk sebelumnya. Setelah masuk, kita melihat formulir
input yang mengijinkan kita untuk menambah entri pengguna baru. Lengkapi formulir dan
klik tombol Create. Jika ada kesalahan input, pengingat kesalahan akan
ditampilkan yang melarang kita menyimpan input. Kembali ke daftar
pengguna, seharusnya kita melihat pengguna yang baru ditambahkan muncul dalam daftar.
Ulangi langkah di atas untuk menambah lebih banyak pengguna. Catatan bahwa halaman daftar pengguna akan dipaginasi secara otomatis jika terlalu banyak pengguna yang harus ditampilkan pada satu halaman.
Jika kita masuk sebagai administrator menggunakan admin/admin, kita dapat melihat halaman
pengguna admin dengan URL berikut:
http://hostname/testdrive/index.php?r=user/admin
Ini akan memperlihatkan tabel entri pengguna bagi kita. Kita dapat mengklik sel header tabel guna mengurut sesuai kolom terkait. Dan seperti halnya halaman daftar pengguna, halaman admin juga melakukan paginasi bila ada banyak entri pengguna yang harus ditampilkan dalam satu halaman.
Semua fitur cantik disediakan tanpa harus menulis satu baris kode pun!
Halaman admin pengguna

Halaman membuat pengguna baru

Signup or Login in order to comment.