Tải bản đầy đủ (.pdf) (35 trang)

Bài 2: Mô hình MVC trong Yii framework

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (590.14 KB, 35 trang )

Bài 2: Mô hình MVC trong

Yii framework

Bài 2: Mô hình MVC trongYii framework


M c tiêu bài h c
 Gi i thi u t ng quan v MVC trong Yii framework
 Tìm hi u các v n :
• Application
• Controller
• Model
• View
• Component
• Module
• Các thành ph n khác

Bài 2: Mô hình MVC trongYii framework

2


Gi i thi u t ng quan v MVC trong
Yii framework

Bài 2: Mô hình MVC trongYii framework3


Mô hình MVC?
Yii s d ng mô hình MVC (Model-View-Controller)


 MVC h ng t i vi c phân chia các logic
c thù trong
vi c giao ti p v i ng i dùng
 Trong mô hình MVC, Model
i di n cho thông tin và
các lu t i v i thông tin ó.
 View ch a các
i t ng t ng tác tr c ti p v i ng i
dùng nh là các nút, các textbox,...
 Controller s giúp M và V t ng tác v i nhau, nó
m
nh n vi c x lý d li u, thu th p d li u t View ho c
a d li u t Model ra View...

Bài 2: Mô hình MVC trongYii framework4


Mô hình MVC?
Yii gi i thi u i t ng front-controller, g i là Application:
 Application thu th p d li u t request c a ng i dùng
và a t i controller phù h p
x lý.

Bài 2: Mô hình MVC trongYii framework5


Workflow c b n?
th bên d i s ch cho các b n th y m t lu ng x lý c n b n
c a Yii khi nh n yêu c u t phía ng i dùng (Yêu c u
ây có th là

t URL, t Form,...):
 Di n gi i chi ti t:
• Ng i dùng s g i yêu c u d i d ng 1 URL d ng
nh và
WebServer s ti p nh n yêu c u ó b ng cách th c thi
"bootstrap script" index.php!
• Bootstrap script s kh i t o m t th hi n c a Application và
ch y nó.
• Application có
c thông tin yêu c u c a ng i dùng t m t
m t i t ng bên trong application tên là request!
• Application xác nh controller và action mà yêu c u g i t i nh
m t thành ph n khác g i là urlManager. Ví d
ây controller
g i t i là post, action là id
Bài 2: Mô hình MVC trongYii framework6


Workflow c b n?

 Di n gi i chi ti t:
• Application t o m t instant controller t ng ng
ti p t c x
lý yêu c u c a ng i dùng. Controller nh n bi t
c yêu c u
show tham chi u t i ph ng th c tên là actionShow() trong
controller class. R i nó th c thi b l c c a chính nó
(PostController) liên quan t i yêu c u trên. N u th a mãn h t các
yêu c u c a b l c thì action show s
c th c thi.

• action load m t model nào ó (ví d Post) v i id =1 t c s d
li u
• action s render ra 1 view tên nào ó (ví d show)
• view s
c và show ra các thu c tính (attributes) c a Post model
• view lúc này có th th c thi thêm 1 s widget (n u
c khai báo
trong nó)
• view hi n th ra k t qu
c nhúng gi a m t layout!
• action hoàn thành vi c render ra view và hi n th trên trình duy t
c a ng i dùng!
Bài 2: Mô hình MVC trongYii framework7


Workflow c b n?

Bài 2: Mô hình MVC trongYii framework8


Entry Script?
Là file u tiên nh n toàn b request c a ng i dùng. File này
có th là index.php ho c b t c file nào khác:
 N i dung:

 L u ý: Ch y d i môi tr ng debug thì t t nhiên ch m h n,
nh ng nó s show ra cho chúng ta 1 s thông tin h u ích
trong quá trình phát tri n. Ch ng h n nh ch ng trình v a
th c thi nh ng câu SQL nào, m t bao lâu, l i x y ra class
nào, dòng bao nhiêu...

Bài 2: Mô hình MVC trongYii framework9


Tìm hi u Application?
Là i t ng th c thi ng c nh khi có yêu c u x lý:
 Có th
c kh i t o b i Entry Script
 Có th truy c p thông qua Yii::app()
 Ta tìm hi u Application thông qua:
• C u hình
• Th m c c s
• Các thành ph n
• Thành ph n core
• Vòng i

Bài 2: Mô hình MVC trongYii framework10


C u hình Application?
i t ng Application là th hi n c a CWebApplication
 Ví d : m ng sau s thi t l p giá tr 2 thu c tính name và
defaultController



c u hình App theo file config, ta có th dùng:

Bài 2: Mô hình MVC trongYii framework11



Th m c c s Application?
C n
c b o m t th m c c s
 Trong file .htaccess, d i tên các th m c c s ta c n ghi
n i dung deny from all

Bài 2: Mô hình MVC trongYii framework12


Các thành ph n c a Application?
 Các ch c n ng c a các
i t ng Application có th d
dàng
c tùy bi n b ng cách s d ng ki n trúc thành
ph n linh ho t c a nó

truy c p vào m t thành ph n ng d ng, s d ng:
Yii :: app() -> ComponentID
 Ví d :

Bài 2: Mô hình MVC trongYii framework13


Các thành ph n core c a Application?
D i ây là danh sách các thành ph n core
trong CWebApplication

c khai báo

Bài 2: Mô hình MVC trongYii framework14



Các thành ph n core c a Application?
D i ây là danh sách các thành ph n core
trong CWebApplication

c khai báo

Bài 2: Mô hình MVC trongYii framework15


Vòng

i c a Application?

Vòng i c a Application qua các b c sau:
 Ti n kh i t o v i CApplication::preinit();
 Thi t l p các l p t
ng t i d li u và l i
 ng ký các thành ph n core c a Application
 T i c u hình ng d ng
 Kh i t o ng d ng v i CApplication::init()
• ng ký các hành vi
•Load các thành ph n t nh
 B t s ki n onBeginRequest
 Th c thi các yêu c u c a user nh t p h p thông tin v
yêu c u, t o controller và ch y controller
 B t s ki n onEndRequest
k t thúc yêu c u
Bài 2: Mô hình MVC trongYii framework16



Controller trong Yii?
Controller là m t th hi n c a l p Ccontroller ho c m t class
extend t Ccontroller. Nó
c t o b i application khi ng i
dùng th c thi yêu c u.
Các controller u có hành ng, m c nh là defaultAction.
 Ví d :

Bài 2: Mô hình MVC trongYii framework17


Controller trong Yii?
Route:
Controller và các hành ng
c xác nh b i các ID
 nh d ng c a Controller ID: path/to/xyz
 Controller class l u :
• protected/controllers/PostController.php
 Ví d : route có tên là post/edit tham chi u
n Post
Controller và s d ng hành
ng edit. Nh v y
ng
d n s là: http://hostname/index.php?r=post/edit
 M t ng d ng có th ch a các module.
m t
controller yêu c u hành
ng t module thì yêu c u có

d ng: moduleID/controllerID/actionID

Bài 2: Mô hình MVC trongYii framework18


Controller trong Yii?
Cài t Controller:
Controller
c t o ra t CWebApplication khi có yêu c u.
Khi m t ID
c yêu c u, ng d ng s s d ng m t s qui
t c
xác nh v trí c a file:
 CWebApplication::catchAllRequest: S d ng khi c n b o
trì (vì khi ó ID yêu c u s
c b qua)
 CWebApplication::controllerMap: S d ng khi t o th
hi n c a controller.
 CHttpException: S d ng khi yêu c u path/to/xyz không
xác nh
c ID

Bài 2: Mô hình MVC trongYii framework19


Controller trong Yii?
Hành ng:
Controller nh ngh a các hành

ng nh sau:


 Khi controller nh n bi t
c hành
ph ng th c action tronng controller:

ng, nó s ghi

è lên

Bài 2: Mô hình MVC trongYii framework20


Controller trong Yii?
Hành ng:
 Trong ví d v a nêu, chúng ta s d ng
ng d n:
• application.controllers.post.UpdateAction
 Trên th c t hành ng này l u trong file:
• protected/controllers/post/UpdateAction.php
 Ví d v c u trúc controller:

Bài 2: Mô hình MVC trongYii framework21


Controller trong Yii?
Tham s trong Hành ng:
Controller xác nh hành ng b ng $_GET
•Ví d v hành ng không có tham s :

Bài 2: Mô hình MVC trongYii framework22



Controller trong Yii?
Tham s trong Hành ng:
 Controller xác nh hành ng b ng $_GET
•Ví d v hành ng có tham s :

Bài 2: Mô hình MVC trongYii framework23


Controller trong Yii?
Tham s trong Hành ng:
 Controller xác nh hành ng b ng $_GET
•Ví d v xác nh hành
ng thông qua ph
Run()

ng th c

Bài 2: Mô hình MVC trongYii framework24


Controller trong Yii?
L c các Hành ng:
 B l c là m t o n mã
c c u hình
ho c sau khi m t hành ng th c thi.
•Ví d :

•Ta có th s d ng $filterChain->run()

ng th c thi

th c hi n tr

c

l c các hành

Bài 2: Mô hình MVC trongYii framework25


×