Menggunakan Extension
- Download extension dari repositori extension Yii.
- Urai extension di bawah subdirektori
extensions/xyz
pada direktori basis aplikasi, di manaxyz
adalah nama extension. - Impor, konfigurasi dan gunakan extension.
xyz
, kita dapat menggunakan alias path ext.xyz
untuk
menempatkannya pada basis direktori yang berisi semua file xyz
.Extension yang berbeda memiliki persyaratan mengenai pengimporan, konfigurasi dan pemakaian. Selanjutnya, kita meringkas skenario pemakaian umum mengenai extension, berdasarkan pada kategorisasinya seperti dijelaskan dalam tinjauan.
1. Extension Zii
Sebelum kita mulai melihat penggunaan extension pihak ketiga, kami akan memperkenalkan pustaka extension Zii, yang merupakan kumpulan extension yang dikembangkan oleh tim developer Yii dan disertakan dalam setiap rilis.Ketika menggunakan sebuah ektensi Zii, kita harus merujuk ke kelas bersangkutan dengan menggunakan alias path dalam bentuk
zii.path.ke.NamaKelas
. Di sini akar alias zii
ditentukan oleh Yii. Dia akan dirujukkan
ke direktori pustaka Zii. Misalnya, untuk menggunakan CGridView, kita akan menggunakan
kode berikut dalam skrip view ketika merujuk ke extension:$this->widget('zii.widgets.grid.CGridView', array( 'dataProvider'=>$dataProvider, ));
2. Komponen Aplikasi
Untuk menggunakan komponen aplikasi, kita perlu mengubah konfigurasi aplikasi lebih dulu dengan menambahkan entri baru pada properticomponents
, seperti berikut:return array( // 'preload'=>array('xyz',...), 'components'=>array( 'xyz'=>array( 'class'=>'ext.xyz.XyzClass', 'property1'=>'value1', 'property2'=>'value2', ), // konfigurasi komponen lainnya ), );
Yii::app()->xyz
. Komponen
ini akan dibuat secara lazy (yakni, dibuat saat diakses untuk pertama kali)
kecuali kita mendaftar properti preload
.3. Behavior
Behavior bisa dipakai dalam semua komponen. Pemakaiannya mencakup dua langkah. Dalam langkah pertama, behavior dilampirkan ke sasaran komponen. Dalam langkah kedua, metode behavior dipanggil melalui sasaran komponen. Sebagai contoh:// $name secara unik mengidentifikasi behavior dalam komponen $component->attachBehavior($name,$behavior); // test() adalah metode $behavior $component->test();
attachBehavior
. Sebagai contoh, untuk melampirkan behavior ke sebuah
komponen aplikasi, kita dapat
menggunakan
konfigurasi aplikasi berikut:return array( 'components'=>array( 'db'=>array( 'class'=>'CDbConnection', 'behaviors'=>array( 'xyz'=>array( 'class'=>'ext.xyz.XyzBehavior', 'property1'=>'value1', 'property2'=>'value2', ), ), ), //.... ), );
xyz
ke komponen aplikasi db
. Kita dapat melakukannya
karena CApplicationComponent mendefinisikan properti bernama behaviors
. Dengan menyetel properti ini
dengan sebuah daftar konfigurasi behavior, komponen akan melampirkan behavior terkait
saat ia diinisialisasi.Untuk kelas CController, CFormModel dan CActiveModel yang biasanya harus diturunkan, melampirkan behaviors dikerjakan dengan menimpa metode
behaviors()
. Kelas-kelas tersebut akan
terpasang secara otomatis behavior-behavior yang dideklarasi dalam metode ini ketika inisialisasi. Sebagai contoh,public function behaviors() { return array( 'xyz'=>array( 'class'=>'ext.xyz.XyzBehavior', 'property1'=>'value1', 'property2'=>'value2', ), ); }
4. Widget
Widget dipakai terutama dalam tampilan. Kelas widget yang diberiktanXyzClass
dimiliki oleh extension xyz
, kita bisa menggunakannya dalam
sebuah tampilan seperti berikut,// widget yang tidak memerlukan konten body <?php $this->widget('application.extensions.xyz.XyzClass', array( 'property1'=>'value1', 'property2'=>'value2')); // widget yang dapat berisi konten body <?php $this->beginWidget('application.extensions.xyz.XyzClass', array( 'property1'=>'value1', 'property2'=>'value2')); ...konten body widget... <?php $this->endWidget();
5. Action (Aksi)
Action dipakai oleh controller untuk merespon permintaan spesifik pengguna. Kelas aksiXyzClass
dimiliki oleh extension
xyz
, kita dapat menggunakannya dengan meng-override metode CController::actions dalam
kelas controller kita:class TestController extends CController { public function actions() { return array( 'xyz'=>array( 'class'=>'application.extensions.xyz.XyzClass', 'property1'=>'value1', 'property2'=>'value2', ), // aksi lainnya ); } }
test/xyz
.6. Filter
Filter juga dipakai oleh controller. Terutama pre- dan post-process permintaan pengguna saat ditangani oleh sebuah aksi. Kelas filterXyzClass
dimiliki oleh
extension xyz
, kita dapat menggunakannya dengan meng-override metode CController::filters
dalam file controller kita:class TestController extends CController { public function filters() { return array( array( 'application.extensions.xyz.XyzClass', 'property1'=>'value1', 'property2'=>'value2', ), // filter lainnya ); } }
7. Controller
Controller menyediakan satu set action yang dapat di-request oleh pengguna. Untuk menggunakan extension controller, kita perlu mengkonfigurasi properti CWebApplication::controllerMap dalam konfigurasi aplikasi:return array( 'controllerMap'=>array( 'xyz'=>array( 'class'=>'application.extensions.xyz.XyzClass', 'property1'=>'value1', 'property2'=>'value2', ), // controller lainnya ), );
a
dalam controller dapat diakses via
rute xyz/a
.8. Validator
Validator dipakai terutama dalam kelas model (salah satu yang diperluas baik dari CFormModel ataupun CActiveRecord). Kelas validatorXyzClass
dimiliki oleh
extension xyz
, kita bisa menggunakannya dengan menimpa metode CModel::rules
dalam kelas model kita:class MyModel extends CActiveRecord // atau CFormModel { public function rules() { return array( array( 'attr1, attr2', 'application.extensions.xyz.XyzClass', 'property1'=>'value1', 'property2'=>'value2', ), // aturan validasi lainnya ); } }
9. Perintah Konsol
Extension perintah konsol biasanya meningkatkan pirantiyiic
dengan perintah tambahan. Perintah konsol
XyzClass
dimiliki oleh extension xyz
, kita bisa menggunakannya dengan mengatur
file konfigurasi untuk aplikasi konsol:return array( 'commandMap'=>array( 'xyz'=>array( 'class'=>'application.extensions.xyz.XyzClass', 'property1'=>'value1', 'property2'=>'value2', ), // perintah lainnya ), );
yiic
yang disertai dengan perintah
tambahan xyz
.Catatan: Aplikasi konsol biasanya menggunakan file konfigurasi yang berbeda dari yang dipakai oleh aplikasi Web. Jika aplikasi dibuat menggunakan perintahyiic webapp
, maka file konfigurasi untuk aplikasi konsolprotected/yiic
adalahprotected/config/console.php
, sementara file konfigurasi untuk aplikasi Web adalahprotected/config/main.php
.
10. Module
Silahkan merujuk ke seksi mengenai module bagaimana menggunakan module.11. Komponen Generik
Untuk menggunakan komponen generik, pertama kita perlu menyertakan file kelasnya dengan menggunakanYii::import('ext.xyz.XyzClass');Selanjutnya, kita dapat membuat turunan kelas, mengkonfigurasi propertinya, dan memanggi metodenya. Kita juga bisa menurunkannya untuk membuat anak kelas baru.
Tidak ada komentar:
Posting Komentar