Yii adalah framework (kerangka kerja) PHP berbasis- komponen, berkinerja tinggi untuk pengembangan aplikasi Web berskala-besar. Yii menyediakan reusability maksimum dalam pemrograman Web dan mampu meningkatkan kecepatan pengembangan secara signifikan. Nama Yii (dieja sebagai /i:/) singkatan dari "Yes It Is!". Berikut merupakan respon yang paling tepat dan akurat untuk yang baru dengan Yii: Apakah Yii cepat? ... Apakah Yii aman? ... Apakah Yii profesional? ... Apakah Yii cocok untuk projek saya berikutnya? ... Yes, it is!
Yii Framework, bisa anda download langsung di : http://www.yiiframework.com/download/. Web Server dan database. (paket xampp, appserver, wamp atau yang lainny,a yang mendukung PHP 5.10 ke atas) Bagi para pengembang yang ingin menggunakan Yii, mengerti pemrograman berorientasi-objek (OOP) akan sangat membantu, karena Yii merupakan framework OOP murni. Editor untuk mengetik coding ( Adobe Dreamweaver, ckeditor) Browser digunakan untuk testing, running, dan googling
Yii Paling Cocok untuk Apa? Yii adalah framework pemrograman umum Web yang bisa dipakai untuk mengembangkan semua jenis aplikasi Web. Dikarenakan sangat ringan dan dilengkapi dengan mekanisme caching yang canggih, Yii sangat cocok untuk pengembangan aplikasi dengan lalu lintas-tinggi, seperti portal, forum, sistem manajemen konten (CMS), sistem e-commerce, dan lain-lain. Bagaimana Yii Dibandingkan dengan Framework Lain? Seperti kebanyakan PHP framework, Yii adalah MVC framework. Yii melampaui framework PHP lain dalam hal efisiensi, kekayaan-fitur, dan kejelasan dokumentasi. Yii didesain dengan hati-hati dari awal agar sesuai untuk pengembangan aplikasi Web secara serius. Yii bukan berasal dari produk pada beberapa proyek maupun konglomerasi pekerjaan pihak- ketiga. Yii adalah hasil dari pengalaman kaya para pembuat pada pengembangan aplikasi Web dan investigasi framework pemrograman Web dan aplikasi yang paling populer.
Penerapan konsep MVC dimaksudkan untuk memisahkan logika bisnis dan antar muka pada suatu aplikasi. Dengan MVC, seorang pengembang aplikasi dapat lebih mudah mengubah suatu bagian dalam aplikasi tanpa harus mengubah bagian yang lainnya. model menggambarkan informasi atau data beserta aturan bisnisnya seperti validasi, relasi, tipe data, dan lain-lain. Ada dua jenis model, yaitu model yang disimpan dan dikumpulkan ke dalam database dan model yang setelah dipakai tidak disimpan ke dalam database. Jika kita menggunakan model yang setelah dipakai tidak disimpan ke dalam database, maka kita dapat menggunkan Form Model untuk mendefinisikannya. Sedangkan untuk model yang disimpan dan dikumpulkan ke dalam database, kita dapat menggunakan Active Record. View adalah antar muka aplikasi yang menjadi jembatan interaksi antara user dan aplikasi. Controller adalah jembatan yang menghubungkan antara View dan Model. Controller terdiri dari action (aksi) yang akan melakukan request yang di dalamnya biasanya memerlukan Model dan View. Dengan kata lain, jika anda mau membuat sebuah aksi yang bisa direquest oleh user, anda harus definisikan aksi tersebut di dalam sebuah controller. Cek versi php yang digunakan. Karena Yii mendukung php 5.1.0 atau yang lebih tinggi Cara mengecek, ketik di browser (localhost/xampp/phpinfo.php)
Lakukan konfigurasi Environment variables, karena instalasi menggunakan perintah Yiic di command promp. Cara konfigurasi : buka windows explorer, klik kanan Computer dan pilih properties, kemudian akan tampil jendela system, klik Advanced system settings, selanjutnya klik tab Advanced. Cari bagian bawah Envronment Variabel.
Pada bagian System variables cari variabel Path, lalu klik tombol Edit Kemudian pada bagian Variable value di akhir teks, tambahkan ;C:\xampp\php kemudian klik Ok
Download framework Yii versi terbaru di www.yiifamework.com Copy file download tadi yang bernama yii-1.1.14.f0fee9.tar.gz ke C:\xampp\htdocs. Kemudian ekstrak file tersebut. Akan menghasilkan folder dengan nama yii-1.1.14.f0fee9, ganti nama folder tersebut dengan nama yiiworkshop. Nah. Yii Framework anda telah berhasil di install.
Buka command promp ketikkan perintah Cd C:\xampp\htdocs/yiiworkshop/framework Yiic webapp c:\xampp\htdocs\yiiworkshop Muncul pertanyaan. Apakah aplikasi diletakkan di c:\xampp\htdocs\yiiyuez. Jawab dengan Yes kemudian enter. Apabila berhasil akan muncul pesan your application has been created successfully Pengujian hasil instalasi. Buka browser, ketikkan localhost/yiiworkshop Jika berhasil akan tampil seperti gambar di bawah :
Halaman Utama Yii Framework Jalankan Service Mysql anda, Buat Database dengan nama db_workshop Buat table dengan nama level Masukkan attribut seperti berikut :
Nama Attribut ID Level Type Int(4) Varchar(20) Null No No Index Primary Key - Auto Increment Yes - Nama Attribut ID User Pwd email Deskripsi Type Int(4) Varchar(25) Varchar(32) Varchar(35) text Null No No No No No Index Primary - - - - A_I Yes - - - Buat table dengan nama user Masukkan attribut seperti berikut :
'db'=>array( 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db', ), // uncomment the following to use a MySQL database /* 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=testdrive', 'emulatePrepare' => true, 'username' => 'root', 'password' => '', 'charset' => 'utf8', ), */ buka file protected/config/main.php. Non aktifkan connector sqlite kemudian aktifkan mysql Lakukan konfigurasi terhadap mysql Salah satu fitur dalam yii framework Mengaktifkan code generate yang berfungsi membuat operasi CRUD (Create, Read, Update, Delete) pada suatu tabel di database. Untuk menggunakannya Buka file protected/config/main.php 'modules'=>array( // uncomment the following to enable the Gii tool /* 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'Enter Your Password Here', // If removed, Gii defaults to localhost only. Edit carefully to taste. 'ipFilters'=>array('127.0.0.1','::1'), ), */ ),
Hilangkan tag komentar yang ada pada code tersebut konfigurasi password sesuai keinginan anda. Akses localhost/yiiworkshop/index.php?r=gii Jika sudah sesuai dengan hasil, itu berarti anda sudah bisa menggunakan Gii untuk meng-generate code anda. Halaman Login Gii Login dengan password gii anda. Anda akan masuk kehalaman utama Gii Halaman Utama Gii Pilih Model Controller Masukkan : Table Name : user [nama tabel yang ingin di generate] Pilih Preview Kemudian Generate Jika berhasil akan terbentuk sebuah file pada direktori protected/models/user.php dalam aplikasi anda.
Selanjutnya membuat operasi CRUD pada menu Gii pilih Crud Generator.
Masukkan : Model Class : User[Nama Model anda] Pilih Preview Kemudian Generate Lihat Hasil, di : http://localhost/yiiworkshop/index.php?r=user
Di dalam form register kita akan menambahkan captcha untuk keamanan datanya. Buka protected/controllers/UserControllers.php
public function actions() { return array( // captcha action renders the CAPTCHA image displayed on the contact page 'captcha'=>array( 'class'=>'CCaptchaAction', 'backColor'=>0xFFFFFF, ), // page action renders "static" pages stored under 'protected/views/site/pages // They can be accessed via: index.php?r=site/page&view=FileName 'page'=>array( 'class'=>'CViewAction', ), ); } Untuk mendapat hak akses user. Ubah/tambahkan method accessRules() seperti berikut : return array( array(allow, // allow all users to perform index and view actions actions=>array(create,captcha), users=>array(*), ), array Setelah selesai. Maka buka file protected/models/User.php Copy/ganti isi dari file user.txt yang ada pada kaset tutorial. buka file pada folder: protected/components/UserIdentity.php. Ganti code pada function authenticate :
public function authenticate() { $model = new User; $user= $model->findByAttributes(array('username'=>$this->username)); if($user===null){ $this->errorCode=self::ERROR_USERNAME_INVALID; }else{ if($user->password !== md5($this->password)){ $this->errorCode=self::ERROR_PASSWORD_INVALID; }else{ $this->_id = $user->id; $this->errorCode=self::ERROR_NONE; } } return !$this->errorCode; } public function getId() { return $this->_id; } public function rules() ==> mendefinisikan batasan/validasi dari variabel yang ada. public function attributeLabels() ==> mengeset label yang ada pada masing-masing variabel public function validatePassword($password) ==>mengecek apakah password sudah benar atau belum public function hashPassword($password,$salt) ==>mengenkripsi password sesuai dengan code yang diberikan. public function beforeSave() ==>perintah ini dijalankan sebelum dilakukan penyimpanan protected function generateSalt() ==>menggenerate otomatis code enkripsi password.
Setelah semua telah selesai. Langkah selanjutnya adalah mengubah View Buka file protected/views/user/_form.php Tambahkan kode berikut :
<?php if (extension_loaded('gd')): ?> <div class="row"> <?php echo CHtml::activeLabelEx($model, 'verifyCode')?> <div> <?php $this->widget('CCaptcha');?> <?php echo CHtml::activeTextField($model,'verifyCode');?> </div> <div class="hint">Ketik tulisan yang ada pada gambar. <br />Letters are not case-sensitive.</div> </div> <?php endif; ?>
<?php if (extension_loaded('gd')): ?> <div class="row"> <?php echo CHtml::activeLabelEx($model, 'verifyCode')?> <div> <?php $this->widget('CCaptcha');?> <?php echo CHtml::activeTextField($model,'verifyCode');?> </div> <div class="hint">Ketik tulisan yang ada pada gambar. <br />Letters are not case-sensitive.</div> </div> <?php endif; ?> Tambahkan link pada form login untuk dapat mengakses form login. Buka protected/views/site/login.php Tambahkan : <p class=hint> Belum punya akun, <?php echo CHtml::link( silahkan register,array(userAdmin/create)); ?> </p> Selesai, Lakukan Test pada halaman login untuk melakukan register.
Unduh bootstrap extension pada website resmi yii: http://www.yiiframework.com/extension/bootstrap/ Extract ke direktori C:\xampp\htdocs\webroot\protected\extensions Ubah nama direktori menjadi bootstrap, sehingga struktur direktori menjadi C:\xampp\htdocs\webroot\protected\extensions\bootstrap Tambahkan baris perintah pada file main.php yg ada pada direktori C:\xampp\htdocs\webroot\protected\config ... Yii::setPathOfAlias('bootstrap', dirname(__FILE__).'/../extensions/bootstrap'); return array( 'theme'=>'bootstrap', 'modules'=>array( 'gii'=>array( 'generatorPaths'=>array( 'bootstrap.gii', ), ), ), 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', ... // application component 'components'=>array( 'user'=>array( // enable cookie-based authentication 'allowAutoLogin'=>true, ),
'bootstrap'=>array( 'class'=>'bootstrap.components.Bootstrap', ), Tambahkan perintah pada file main.php yg ada pada direktori C:\xampp\htdocs\webroot\protected\views\layout\ dibawah tag <head> ... <?php Yii::app()->bootstrap->registerAllCss(); ?> ... Tambahkan baris perintah pada file Bootstrap.php yang ada pada direktori C:\xampp\htdocs\webroot\protected\extensions\bootstrap\c omponents di dalam class ... public function init() { $this->registerAllCss(); $this->registerJs(); parent::init(); } ... Salin direktori theme yg ada pada direktori C:\xampp\htdocs\webroot\protected\extensions\bootstrap ke direktori C:\xampp\htdocs\webroot\themes kemudian ubah nama direktori theme menjadi bootstrap