Bài 6: Ti n ích m r ng (Extension) trong
Yii framework
Bài 6: Extension trong Yii framework
M c tiêu bài h c
T
S
T
S
ng quan v Extension trong Yii framework
d ng các Extension
o các Extension
d ng th vi n c a nhà cung c p th 3
Bài 6: Extension trong Yii framework 2
T ng quan v Extension
Yii framework
Bài 6: Extension trong Yii framework 3
Extension là gì?
Extension là m t ti n ích m r ng
Extension (m r ng) là m t ho t
ng ph bi n trong
quá trình phát tri n ng d ng.
Ví d , khi b n vi t m t Controller m i, b n m r ng
b ng cách k th a l p CController c a nó;
Khi b n vi t m t ti n ích m i, b n m r ng CWidget
ho c m t l p widget hi n có.
N u mã m r ng
c thi t k
tái s d ng b i các
nhà phát tri n th ba, chúng ta g i nó là ph n m r ng
(Extension).
Bài 6: Extension trong Yii framework 4
Extension là gì?
Phân lo i Extension:
application component
behavior
widget
controller
action
filter
console command
Validator
module
Bài 6: Extension trong Yii framework 5
S d ng các Extension
Yii framework
Bài 6: Extension trong Yii framework 6
S d ng Extension?
Chúng ta h c cách s d ng các lo i Extension sau:
Zii Extensions
Application Component
Behavior
Widget
Action
Filter
Controller
Validator
Console Command
Module
Generic Component
Bài 6: Extension trong Yii framework 7
S d ng Extension?
s d ng Extension chúng ta tuân theo 3 b c:
T i Extension t kho l u tr m r ng c a Yii.
Gi i nén ph n m r ng trong th m c Extension/ xyz c a
th m c ng d ng, xyz chính là tên c a ph n m r ng.
Import, c u hình và s d ng ph n m r ng.
Bài 6: Extension trong Yii framework 8
S d ng Zii Extension?
s d ng Zii extension, ta ph i tham chi u theo
d n sau: zii.path.to.ClassName
Ví d v vi c s d ng CGridView
ng
Bài 6: Extension trong Yii framework 9
S d ng thành ph n ng d ng?
s d ng thành ph n ng d ng, u tiên chúng ta c n
thay i c u hình và thêm các th c th m i:
truy c p vào thành ph n, chúng ta s
th c theo cách sau: Yii::app()->xyz
d ng ph
ng
Bài 6: Extension trong Yii framework10
S d ng Behavior?
Hành vi có th
c s d ng trong t t c các thành
ph n.
S d ng nó bao g m hai b c:
•B c u tiên, m t hành vi
c g n vào m t m c tiêu
thành ph n.
•B c th hai, m t ph ng th c
c g i là hành vi
thông qua các m c tiêu thành ph n
S d ng l nh:
•$component->attachBehavior($name,$behavior);
Ví d :
Bài 6: Extension trong Yii framework11
S d ng Behavior?
Ví d ,
ính kèm hành vi vào m t thành ph n ng
d ng, chúng ta có th s d ng c u hình ng d ng sau
ây:
Bài 6: Extension trong Yii framework12
S d ng Widget?
Widget ch y u
c s d ng trong views.
M t XyzClass là ph n m r ng c a xyz, chúng ta có th
s d ng nó trong m t view nh sau:
Bài 6: Extension trong Yii framework13
S d ng Action?
Action
c s d ng trong controller
c u c a ng i s d ng.
Ví d :
ph n h i yêu
Bài 6: Extension trong Yii framework14
S d ng Filter?
B l c
c s d ng trong controller
S d ng b ng cách ghi è các ph ng th c
• CController::filters
Bài 6: Extension trong Yii framework15
S d ng Controller?
Controller cung c p các hành
ng có th
c yêu c u
t ng i s d ng
s d ng controller extension, ta c n c u hình:
•CWebApplication::controllerMap
Bài 6: Extension trong Yii framework16
S d ng Validator?
Validator
c s d ng trong model, nó
t CFormModel ho c CActiveRecord
c m r ng
Bài 6: Extension trong Yii framework17
T o các Extension
Yii framework
Bài 6: Extension trong Yii framework18
T o các extension?
Chúng ta có th t o các lo i extension sau:
Bài 6: Extension trong Yii framework19
T o thành ph n ng d ng?
M t thành ph n ng d ng có th
c cài t theo các
cách s d ng:
•IApplicationComponent
•CApplicationComponent
M c nh, m t thành ph n ng d ng
c t o ra và kh i
t o ch khi nó
c truy c p l n u tiên trong quá trình
gi i quy t yêu c u.
N u m t thành ph n ng d ng c n ph i t o ra ngay sau
khi các th hi n c a ng d ng
c t o ra, nó s yêu c u
ng i dùng li t kê ID trong CApplication :: preload.
Bài 6: Extension trong Yii framework20
T o Behavior?
t o Behavior, chúng ta ph i th c thi giao di n
• Ibehavior
Khi phát tri n Behavior cho CModel và CActiveRecord, ta
có th k th a t :
• CModelBehavior và CActiveRecordBehavior
Bài 6: Extension trong Yii framework21
T o Widget?
M t widget s
c k th a t Cwidget
Ví d : N u mu n s d ng CSS cho CTabView, ta có th
c u hình CTabView::cssFile
Bài 6: Extension trong Yii framework22
T o Action?
M t action
c k th a t l p CAction
Ph ng th c main c n th c thi hành ng sau:
•IAction::run.
Bài 6: Extension trong Yii framework23
T o Filter?
M t filter
c k th a t CFilter
Ph ng th c main c n cài t
• CFilter::preFilter và CFilter::postFilter
Bài 6: Extension trong Yii framework24
T o Controller?
M t controller s k th a t CExtController thay vì
Ccontroller.
Lý do chính là vì Ccontroller t trong
• application.views.ControllerID
Trong khi ó, CExtController có th m c view là m t th
m c con c a th m c ch a các t p tin l p controller.
Vì v y, nó d dàng h n trong vi c phân ph i l i các
controller t các t p tin view c a mình ang cùng v trí
v i các t p tin l p controller.
Bài 6: Extension trong Yii framework25