Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
590,14 KB
Nội dung
Bài2:MơhìnhMVCYiiframeworkBài2:MơhìnhMVC trongYii framework M c tiêu h c Gi i thi u t ng quan v MVCYiiframework Tìm hi u v n : • Application • Controller • Model • View • Component • Module • Các thành ph n khác Bài2:MơhìnhMVC trongYii framework Gi i thi u t ng quan v MVCYiiframeworkBài2:MơhìnhMVC trongYii framework3 Mơhình MVC? Yii s d ng mơhìnhMVC (Model-View-Controller) MVC h ng t i vi c phân chia logic c thù vi c giao ti p v i ng i dùng Trongmơhình MVC, Model i di n cho thông tin lu t i v i thơng tin ó View ch a i t ng t ng tác tr c ti p v i ng i dùng nh nút, textbox, Controller s giúp M V t ng tác v i nhau, 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 View Bài2:MơhìnhMVC trongYii framework4 Mơhình MVC? Yii gi i thi u i t ng front-controller, g i Application: Application thu th p d li u t request c a ng i dùng a t i controller phù h p x lý Bài2:MơhìnhMVC trongYii framework5 Workflow c b n? th bên d i s ch cho b n th y m t lu ng x lý c n b n c a Yii nh n yêu c u t phía ng i dùng (Yêu c u ây có th 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 URL d ng nh http://www.vd.com/index.php?r=post/show&id=1 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 ch y • Application có c thơng tin u c u c a ng i dùng t m t m t i t ng bên application tên request! • Application xác nh controller action mà yêu c u g i t i nh m t thành ph n khác g i urlManager Ví d ây controller g i t i post, action id Bài2:MôhìnhMVC 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 actionShow() controller class R i th c thi b l c c a (PostController) liên quan t i yêu c u N u th a mãn h t yêu c u c a b l c action show s c th c thi • action load m t model ó (ví d Post) v i id =1 t c s d li u • action s render view tên ó (ví d show) • view s c show thu c tính (attributes) c a Post model • view lúc có th th c thi thêm s widget (n u c khai báo nó) • view hi n th k t qu c nhúng gi a m t layout! • action hoàn thành vi c render view hi n th trình t c a ng i dùng! Bài2:MơhìnhMVC trongYii framework7 Workflow c b n? Bài2:MơhìnhMVC trongYii framework8 Entry Script? Là file u tiên nh n toàn b request c a ng i dùng File có th index.php ho c b t c file khác: N i dung: L u ý: Ch y d i mơi tr ng debug t t nhiên ch m h n, nh ng s show cho s thơng tin h u ích q 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 class nào, dòng Bài2:MơhìnhMVC trongYii framework9 Tìm hi u Application? Là i t ng th c thi ng c nh 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ài2:MơhìnhMVC trongYii framework10 Controller Yii? Hành ng: Trong ví d v a nêu, s d ng ng d n: • application.controllers.post.UpdateAction Trên th c t hành ng l u file: • protected/controllers/post/UpdateAction.php Ví d v c u trúc controller: Bài2:MơhìnhMVC trongYii framework21 Controller Yii? Tham s 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ài2:MơhìnhMVC trongYii framework22 Controller Yii? Tham s Hành ng: Controller xác nh hành ng b ng $_GET •Ví d v hành ng có tham s : Bài2:MơhìnhMVC trongYii framework23 Controller Yii? Tham s 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ài2:MơhìnhMVC trongYii framework24 Controller Yii? L c Hành ng: B l c m t o n mã c c u hình ho c sau 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 hành Bài2:MơhìnhMVC trongYii framework25 Controller Yii? L c Hành ng: M t b l c th hi n c a CFilter Ví d : Bài2:MơhìnhMVC trongYii framework26 Controller Yii? L c Hành ng: Sau apply hành ng l c, c n ghi ph ng th c: CController::filters() Ví d : è lên ng d n: protected/filters/PerformanceFilter Bài2:MơhìnhMVC trongYii framework27 Model Yii? Là m t th hi n c a l p Cmodel Model trình di n m t i t ng d li u, t ng ng v i m t dòng b ng d li u, m t form html ho c m t s tr ng d li u mà ng i dùng nh p vào Yii cho phép cài t lo i model: Form Model Active Record Form Model th hi n c a CFormModel, s d ng l u tr d li u ng i dùng nh p vào Active Record th hi n c a CActiveRecord, s d ng l u tr d li u truy xu t t b ng d li u Bài2:MơhìnhMVC trongYii framework28 View Yii? Là o n code PHP th hi n thành ph n giao di n ng i s d ng có th hi n th c d li u view, ta s d ng CController::render() Ph ng th c s tìm ControllerID th m c: • protected/views/ControllerID Ví d : a d li u vào View Bài2:MôhìnhMVC trongYii framework29 View Yii? Có lo i View: Layout, Widget System view Layout m t view c bi t, ch a thành ph n giao di n ng i s d ng M c nh c l u : protected/views/layouts/main.php Có th thay i layout b ng cách s d ng: • CWebApplication::layout ho c CController::layout hi n th ta c n g i renderPartial() thay g i hàm render() Ví d : Bài2:MơhìnhMVC trongYii framework30 View Yii? Widget m t th hi n c a Cwidget c s d ng nhúng o n k ch b n c a view ph c v vi c generate view ph c t p Ví d : S d ng widget không c n n i dung ph n body Có th c u hình vi c customize hành vi kh i t o thu c tính giá tr , ta c n g i: • CBaseController::beginWidget ho c CBaseController::widget Bài2:MơhìnhMVC trongYii framework31 View Yii? Khi s d ng ta c n g i hàm init(), run(), render() Ví d v m t s widget System view hi n th h th ng có l i ho c c a ng i s d ng ghi log Bài2:MơhìnhMVC trongYii framework32 O DEM -Generate thành ph n ng d ng web T ng k t h c Gi i thi u t ng quan v MVCYiiframework Tìm hi u v n : Application Controller Model View Component Module Các thành ph n khác Bài2:MơhìnhMVC trongYii framework34 XIN C M N! Bài2:MơhìnhMVC trongYii framework35 ... n tr c l c hành Bài 2: Mô hình MVC trongYii framework2 5 Controller Yii? L c Hành ng: M t b l c th hi n c a CFilter Ví d : Bài 2: Mơ hình MVC trongYii framework2 6 Controller Yii? L c Hành ng:... 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 logic c thù vi c giao ti p v i ng i dùng Trong mơ hình MVC, ... controller: Bài 2: Mơ hình MVC trongYii framework2 1 Controller Yii? Tham s 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 framework2 2