TR NG ĐAI HOC NHA TRANG ƯỜ ̣ ̣
KHOA CÔNG NGHÊ THÔNG TIN ̣
ĐÔ AN TH C TÂP CHUYÊN NGHANH Ự ̀ ́ ̣ ̀
TIM HIÊU ZEND FRAMEWORK 2.0 ,XÂY D NG WEBSITE TH Ự ƯƠ ̣ NG MAI ̀ ̀ ĐIÊN Ṭ Ử
Giao viên h ng dân Ngô Văn Công ướ ́ ̃
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
MUC LUC ̣ ̣
Muc luc ̣ ......................................................................................................................................2 ̣
L i m đ u ờ ở ầ ..............................................................................................................................5
CH NG 1.TÔNG QUAN ...................................................................................................7 ƯƠ ̉
1.1.Đăt vân đê. ̀ ......................................................................................................................7 ̣ ́
1.2.Ph ng phap giai quyêt ươ ́ ..............................................................................................7 ́ ̉
1.3 Pham vi cua đê tai ̀ .........................................................................................................8 ̣ ̉ ̀
1.4.Ph ng phap nghiên c u ............................................................................................8 ươ ứ ́
CH NG 2:C S LY THUYÊT. .....................................................................................9 ƯƠ Ơ Ở ́ ́
2.1.Gi i thiêu Zend Framework ......................................................................................9 ớ ̣
2.1.1.Framework là gì.........................................................................................................9
2.1.2.Gi i thi u PHP framework .....................................................................................9 ớ ệ
2.1.3.T i sao chúng ta nên s d ng PHP framework? .................................................9 ử ụ ạ
2.1.4.Nh ng đi m c n l u ý khi s d ng 1 PHP framework ? .................................10 ầ ư ử ụ ữ ể
2.1.5.Các lo i PHP framework ph bi n ổ ế .......................................................................11 ạ
2.2.Gi i thi u mô hình MCV ...........................................................................................11 ớ ệ
2.2.1.So sánh mô hình MVC v i mô hình 3 l p .............................................................13 ớ ớ
2.3.Zend Framework..........................................................................................................14
2.3.1.Gi i thi u Zend framework ...................................................................................14 ớ ệ
2.3.1.1.Zend Framework là gì?..........................................................................................14
2.3.1.2. Zend Framework làm đ .............................................................14 ượ c nh ng gì? ữ
2.3.1.3. u khuy t đi m c a Zend Framework: ..........................................................14 Ư ủ ế ể
2.3.1.4. Quá trình phát tri n c a Zend Framework: ....................................................15 ể ủ
2.3.2. M t s l p ph bi n trong ZF .............................................................................17 ộ ố ớ ổ ế
2.3.3.Mô hình MVC trong Zend Framework .................................................................18
.................................................20 2.3.4.Lu ng x lý công vi c trong Zend Framework ệ ử ồ
2.3.5.Cách làm vi c và xây d ng l p trên Zend Framework? ...................................21 ự ớ ệ
2 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
...........................22 2.3.6.C u trúc th m c c a m t project trong ZF (m t module): ộ ư ụ ủ ộ ấ
2.3.7Cai đăt ng dung đâu tiên v i Zend Framework ..................................................22 ̣ ứ ớ ̀ ̣ ̀
NG 3: CH ƯƠ Ự Ứ ̣ ́ CH ƯƠ HANG QUA MANG NG 3.XÂY D NG NG DUNG WEBSITE BOOK SHOP BAN ................................................................................................................29 ̀ ̣
3.1.Đăc ta hê thông ..............................................................................................................29 ̣ ̉ ̣ ́
3.1.1 Gi i thi u ớ ệ ...................................................................................................................29
3.1.2 Mô t h th ng. ả ệ ố ........................................................................................................29
3.1.2.1. Gi ......................................................................29 ớ i thi u s n ph m lên website. ẩ ệ ả
3.1.2.2. Khách hàng.............................................................................................................29
yêu c u h th ng bán sách tr c tuy n 3.2.B n đ c t ả ặ ả ệ ố ế ..............................................30 ự ầ
......................................................................................................................30 3.2.1.M c tiêu ụ
3.2.1.2. Đ i t ng ố ượ ...............................................................................................................30
ch c năng c a h th ng 3.2.1.3.B ng mô t ả ả ứ ủ ệ ố ................................................................31
3.2.1.4 Quy trình đ t hàng .................................................................................................32 ặ
3.3 Phân tích h th ng ệ ố .......................................................................................................32
3.3.1 S đ Use Case ..........................................................................................................32 ơ ồ
3.4.Mô hình quan ni m d li u ữ ệ .......................................................................................35 ệ
...........................................................................................................35 3.5.S đ ch c năng ơ ồ ứ
3.6. C u hình ng d ng ụ ....................................................................................................36 ứ ấ
3.7.1.Môt sô ph ng th c c ban trong Zend Framework ........................................36 ́ ươ ứ ơ ̉ ̣
3.7.1.1.Kh i tao kêt nôi database ......................................................................................36 ở ̣ ́ ́
3.7.1.2.Câu hinh template ...................................................................................................38 ́ ̀
3.71.3.Hiên thi danh muc san phâm theo mô hinh đa câp ............................................39 ̉ ̣ ̣ ̉ ̉ ̀ ́
3.8.Hinh anh Website ..........................................................................................................42 ̀ ̉
Kêt luân .....................................................................................................................................48 ́ ̣
Tai lieu tham khao...................................................................................................................49
xet cua Giao Viên h ng dân Nhâṇ ướ ́ ̉ ́ ̃
....................................................................................................................................................
3 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
4 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Nhân xet cua Giao Viên phan biên ̣ ́ ̉ ́ ̉ ̣
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
....................................................................................................................................................
5 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
L i m đâu
ờ ở
̀
m i th i đ i ,trong m i xã h i m i công vi c đ u có nh ng đ c đi m riêng mang tính ỗ ọ ặ Ở ọ ộ ữ ệ ộ ở ậ ệ ề ấ ữ làm b t kỳ m t vi c gì ng ữ ề ề ấ
ậ ộ lâu ng i ta t ạ t đ n nó.do v y mà ng ế ế i : kinh t ế ,xã h i. M i m t lĩnh v c g m nhi u lĩnh v c m c d ự ồ ừ ủ i ta ườ ộ ỗ ng m i ... ươ ạ ự ế có: buôn bán , th ự ề ừ ề ườ ả đã t ự ư ự ề ệ ộ ứ ề ấ ớ ề ớ ế ệ ụ ộ i nào khi đ t cho nh ng ng ữ ượ ườ ạ ể ờ ạ i ta đ u xem xét đ c thù (nghi p v ) c a nó . b i v y mà khi ướ ệ ụ ủ ặ ộ nh ng thông tin nh ng v n đ gì nh ả xem công vi c đó thu c ph m trù nào c a xã h i , ộ ệ ờ chia ra thành hai lĩnh v c rõ ràng trong đ i h ng, đi u ti ự ề ưở ợ i t ng h p s ng con ng ự ứ ướ ổ ườ ố ch c nghiên c u ,đào lên ví d kinh t ứ ổ ứ ụ t o ngu n nhân l c v t ng lĩnh v c khác nhau d a trên kh năng b m sinh s n có và s ở ẩ ồ ẵ ạ ả thích đ có đi u ki n đi sâu nghiên c u cũng nh th c hi n công vi c m t cách có hi u qu ệ ệ ệ ể , sâu s c và cũng đ ti p c n v i nhi u v n đ m i trong các lĩnh v c khác nhau .Kh năng ả ự ể ế ậ ắ ữ i tham gia vào nh ng chuyên môn nghi p v là m t đòi h i r t c n thi ỏ ấ ầ công vi c có liên quan mà không ph i c ng ữ c đào t o cũng đ , n m v ng ủ ắ ả ứ ườ yêu c u c a công vi c chuyên môn. ệ ầ ủ ệ
Th c t i luôn luôn tìm cách gi m thi u nh ng khó khăn tr ng i làm ể ữ ả ạ ở ườ c d dàng và đòi h i chuyên môn nghi p v không cao. cho th y con ng ấ ự ế cho công vi c th c hi n đ ệ ự ệ ượ ễ ệ ụ ỏ
c đây khi khoa h c công ngh ch a phát tri n ng ườ ể ọ ướ ế ậ ễ c nghiên c u, tìm cách ứ ượ ệ i ta cũng đ ọ ể ớ Tr ệ ư ti p c n r ràng h n v i công vi c .Ngày nay khi khoa h c nông ngh phát tri n tiên ti n ế ệ chúng ta càng có đi u ki n thu n l i h n trong x lý công vi c. ử ậ ợ ơ ơ ề ệ ệ
ọ ư ủ ệ ử ộ ấ ệ ự ữ ộ ề ệ ự ệ ỏ ữ ọ ể i là yêu c u c p thi ọ ẽ ế ọ ầ ấ ệ ệ ụ ố ầ t. tin h c hóa s mang l ộ ườ ự ậ ệ ụ ở ộ ơ ử ữ ớ đ xây d ng h th ng ph c v ả ả ữ ệ ừ ự ề ờ ả ế ớ ả ệ ấ ố ủ ề ộ ế ẹ ằ ứ ầ ộ ế ộ ố ể ự ố ớ ừ ữ ặ Ta xét riêng vi c x lý bán hàng hàng ngày c a m t công ty nào đó. khi tin h c ch a ra đ i thì vi c bán hàng và nh ng vi c liên quan khác đ u th c hi n m t cách r t khó khăn v t ấ ờ ự v đòi h i v ng chuyên môn nghi p v ,t n nhân l c, không gian, chi phí cho vi c th c ả hi n. ngày nay tin h c phát tri n nhu c u tin h c hóa nh ng công vi c chuyên môn l p đi ệ ữ ặ ệ i ích to l n v m i m t : nhân công, i l l p l ặ ề ọ ớ ạ ợ ặ ạ ỏ chi phí tài chính và th m chí c trình đ chuyên môn c a ng i th c hi n nó (không đòi h i ệ ủ ả có chuyên môn nghi p v cao) b i vì nó ch là nh ng thao tác trên máy đ n gi n. tin h c hóa ọ ả ữ ỉ b t bu c ph i có trong th i đ i hi n nay đ i v i t ng công ty, nh ng c a hàng l n hay ố ớ ừ ắ ờ ạ ụ ụ th m chí là c nh ng c a hàng v a và nh .tuy nhiên đ u t ử ỏ ệ ố ầ ư ể ậ i ích mang công vi c tính trong kho ng th i gian ng n là t n kém nh ng xét v lâu dài thì l ả ợ ư ắ i xây d ng ng c đ n v n m nh c a m t công ty. xét v phía ng i là r t to l n nh h l ự ậ ệ ườ ưở ạ i quy t m t cách ch n v n b ng m t ch h th ng thì đây là v n đ không th gi ng trình ề ệ ố ộ ươ ọ ộ ể ả ấ đ t ra, và vì cho m i hình th c, nó ph thu c vào chuyên môn nghi p v , yêu c u th c t ự ế ặ ụ ọ ệ ụ ề c m t cách t ng quát v n đ v y r t khó n u không mu n nói là không th th c hi n đ ấ ổ ệ ượ ậ ấ i quy t khác này. tùy thu c vào nh ng yêu c u đ t ra đ i v i t ng hoàn c nh ta có cách gi ả ế ả c yêu c u đ ra c a h th ng. nhau t m th i trong kh ang th i gian nh t đ nh đáp ng đ ủ ệ ố ượ ầ ờ ấ ị ộ ờ ứ ề ạ ầ ỏ
Trong khuôn khô bai th c tâp chuyên nghanh.D a trên mã ngu n trang web Shopping ự ự ̉ ̀ ̣ ̀ c viêt băng Zend ọ ồ ượ ́ ̀ ̣ ự ̃ ́ ̉ ̀ ́ ̉ ̀ ́ ̀ b ng Zend Framework trong khóa h c Zend Framework online đ ằ framework 1.x em đa phat triên thanh môt d an cua riêng minh viêt băng Zend framework 2.0
ườ ứ ́ ́ ̣ ̣ ̃ ̉ ̣ ́ Em xin cam n cac giao viên tr ng cung nh chuyên nghanh.Em xin cam n giao viên h ng Đai hoc Nha Trang đa giang day nh ng kiên th c đai ̣ ữ ng dân Ngô Văn Công đa giup ̉ ơ ư ̉ ơ ướ ̃ ̀ ́ ̃ ̃ ́ c ươ em hoan thanh đê tai nay ̀ ̀ ̀ ̀ ̀
6 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
CH
NG 1.
TÔNG QUAN
ƯƠ
̉
1.1.Đăt vân đê
̣ ́ ̀
cu i th p niên ậ ệ ệ 80 đ u th p niên 90 công ngh thông tin phát tri n m t cách nhanh ỹ ự ộ , xã h i , văn hóa và quan tr ng h n là nó có nh h ể ừ ố ề ươ ộ ộ ề ặ ị ổ ưở ả ể ể ng di n k thu t. đi u đó là đ ng l c phát tri n các ng d ng v m t kinh ứ ể ụ ng l n v c m t chính tr , n đ nh ị ề ả ặ ớ ả i. s phát tri n m nh m c a công ngh thông tin có nh ệ ẽ ủ ặ ở ọ m i i nó thâm nh p và có m t ậ ạ th gi ế ế ớ ế ự t là vi c buôn bán , trao đôi trên m ng. K t ầ chóng v ph ậ t ọ ế an ninh chính tr trên toàn th gi ị ng r t l n đ n s phát h ưở ấ ớ th gi m t c a n n kinh t ế ế ớ ặ ủ ề ậ ề ơ ế ớ ự tri nể c a n n kinh t ủ ề ệ i. Đ c bi ặ ệ ạ ̉
ỏ ộ ươ ệ ộ ượ ệ ề ộ ử ế ẩ ạ ch c quy mô ta th y ngay đ ổ ứ ố ả ệ ọ ư ủ ươ ự ng pháp th công có nghĩa là m i công vi c đ u đ ấ ờ ổ ệ ề ượ ặ ế ề ọ ộ ệ ụ ề ộ ệ ả ơ ố ả ng m i đó là công vi c bán và phân ph i s n Xét m t khía c nh nh trong n n th ạ c vai trò quan ph m c a m t công ty hay m t c a hàng có t ủ ẩ ấ tr ng c a công ngh thông tin. n u nh công vi c phân ph i s n ph m (bán hàng) c a công ủ ủ ọ ự c th c hi n theo ph c th c ty đ ệ ượ s sách d n đ n vi c t n kém v m i m t : nhân l c, tài i và trên gi y t hi n b i con ng ệ ố ự ẫ ườ ở ệ chính, trình đ , di n tích, đòi h i nhân viên bán hàng ph i có trình đ nghi p v đi u đó là ả ỏ ệ r t khó khăn. nh ng quan tr ng h n là nó không mang l ậ i hi u qu trong kinh doanh th m ạ ọ ấ chí còn x y ra s nh m l n trong công vi c gây th t thoát trong công ty . ư ự ầ ệ ả ẫ ấ
ệ V i s phát tri n và ng d ng m nh m c a tin h c thì tin h c hóa các quy trình nghi p ẽ ủ ạ ọ ọ ớ ự ứ ể t . ụ v n u có th mang tính c p thi ụ ế ể ấ ế
ộ ả ữ ộ ủ ộ c th c hi n m t ự ệ ệ ặ ọ ệ ộ ệ ả ổ ậ ệ ụ ệ ả ố Quy trình bán hàng c a m t công ty thu c h th ng qu n lý kinh doanh c a công ty nó ộ ệ ố ủ t quan tr ng trong h th ng. vi c bán hàng ph i đ gi m t vai trò đ c bi ệ ố ả ượ cách nhanh chóng chính xác và ph i t ng h p thông tin bán hàng c p nh t cho toàn b h ậ ợ th ng giúp cho các nghi p v khác trong công vi c qu n lý kinh doanh c a công ty đáp ng ứ ủ thông tin m t cách chính xác k p th i. ộ ờ ị
Xây d ng h th ng ph i đáp ng đ ả ự ượ ệ ố ủ ầ ủ ứ ữ ệ ố ườ ử ụ ữ ượ ng thông tin l n m t cách chính xác nhanh chóng đáp ng đ ử c l ượ ượ ộ ớ i s d ng thích h p v i ợ ầ c nh ng yêu c u c yêu i và an toàn giúp cho công vi c qu n lý ớ ọ ượ ả ứ ệ c cho h th ng đang dùng (có nghĩa là nó ả ề ặ ử ượ ố ơ ầ ố ơ ơ t h n , đa d ng h n , ạ i thi u đ i v i h th ng đang xây d ng. c nh ng yêu c u c a ng ứ h th ng qu n lý kinh doanh c a công ty. h th ng ph i đáp ng đ ả ả ệ ố chung: x lý đ c u , l u tr , b o v d li u khoa h c thu n l ậ ợ ệ ữ ệ ư ầ ữ ả c đ n gi n đ m b o k t qu cao, thay th đ đ ế ượ ế ả ượ ơ ả ả ệ ố t h n v m t x lý d li u , x lý các yêu c u t đáp ng đ c t ử ứ ữ ệ nhanh h n ...). đi u đó là yêu c u t ể ề ơ ố ớ ệ ố ầ ố ự
ặ ầ ệ ả ợ ệ ố ệ ế ầ ứ ả i s d ng . m c đích xây d ng h th ng là làm gi m b t m c t ệ ụ ớ ườ ử ụ ự ả Yêu c u đ t ra trong công tác qu n lý bán hàng đi đ n vi c xây d ng h th ng tr giúp ự c yêu c u nghi p v , giao di n thân thi n ệ i đa nh ng khó ữ ứ ố ủ ệ ố c quy trình x lý thông tin c a h th ng ượ ử bán hàng cho công ty sao cho ph i đáp ng đ ượ v i ng ệ ố ụ ớ khăn trong công tác qu n lý bán hàng đáp ng đ ứ ả chính.
1.2.Ph
ng phap giai quyêt
ươ
́ ̉ ́
Đ xây d ng đ c h th ng tr giúp bán hàng qua m ng ể ượ ệ ố ự ợ cao thì yêu c u c n ph i kh o sát thông tin c a h th ng ph i chi ti ạ v i đ chính xác và tính th c ự ẫ t và chính xác d n ớ ộ ả ủ ệ ố ầ ầ ế ả ả t ế
7 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Mô ph ng quy trình bán hàng c chính xác . ầ ệ ữ ệ ỏ ơ ở ữ ể ậ ọ ượ ẫ ơ ồ ứ ự c ti n hành i đ nh , xây d ng mô hình th c th quan h và thi ệ ụ ơ ồ ệ ế ế ộ ố ự ể , l uư đ n vi c phân tích d li u đ u vào , ra đ ế tr các thông tin liên quan , thu th p các m u bi u quan tr ng .Trên c s nh ng thông tin ữ xây d ng s đ ch c năng nghi p v , s đ dòng d li u đ ữ ệ c thu th p đ ượ t k m t s modul m c đ nh, m c d ứ ỉ quan tr ng (l u tr ,tìm ki m , x lý thông tin ). ọ ậ ượ ế ứ ướ ỉ ữ ư ự ử ế
Thi t k m t s giao di n quan tr ng c a h th ng sao cho v a mang tính nghi p v ủ ệ ố ệ ụ ừ ệ ọ ế ế ộ ố ả ễ ử ụ v a ph i d s d ng. ừ
L p d ki n xây d ng c s d li u cho h th ng phân tích đánh giá đ ậ ự ế ự ượ ng đ n toàn b h th ng kinh ư c ph m vi l u ơ ở ữ ệ ậ ệ ố ả ế ạ ộ ệ ố ưở ữ ộ ủ ữ ệ ề tr , đ an toàn c a d li u khi v n hành, đi u này nh h doanh c a công ty. ủ
ế ả ố ư ệ c l ượ ượ ả ậ ệ ọ t: kh năng x lý đ ử ệ ố ẳ ng thông tin ạ h n h n h th ng cũ . h th ng t o ệ ố ả ơ K t qu cu i cùng h th ng ph i có tính u vi ệ ố l n , chính xác ,l u tr khoa h c thu n ti n và an toàn ớ ra ph i h tr t i đa trong công vi c qu n lý bán hàng c a công ty. ữ ư i m c t ứ ố ả ỗ ợ ớ ệ ả ủ
1.3 Pham vi cua đê tai
̣ ̉ ̀ ̀
Vê phân tich thiêt kê hê thông:Kêt qua thu đ ượ ̣ ̀ ́ ́ ́ ̣ ́ ́ ̉ ̉ ̀ ̀ ̀ ̀ ́ ự c cua đê tai la mô hinh phân tich hê ̀ ơ ở ữ ứ ́ ̣ ́ ̉ ̣ ̣ ́ thông,c s d liêu,… co kha năng xây d ng phân c s d liêu cho ng dung website Ban ơ ở ữ hang qua mang. ̀ ̣
́ Vê măt lâp trinh :Trên c s nghiên c u va ap dung Zend Framework 2.0,hoan thanh cac ơ ở ứ ̀ ̣ ̣ ̀ ̀ ́ ̣ ̀ ̀ nôi dung chu yêu sau : ̣ ̉ ́
́ +Hiêu va vân dung thanh công cac l p c ban cua zend framework đê xây d ng cac ́ ớ ở ự ̉ ̀ ̣ ̣ ̀ ̉ ̉ ̉ ự ̉ ́ ̣ ́ ̉ ̉ ̣ ́ ́ ̀ ̉ ́ module chu yêu cho hê thông: Module san phâm, module hê thông trong d an (dung đê câu hinh cac phân măc đinh nh layout,router,model,…). ư ̀ ́ ̀ ̣ ̣
+Đam bao hê thông vân hanh theo đung câu truc cua môt ng dung Zend ̣ ứ ̉ ̉ ̣ ́ ̣ ̀ ́ ́ ́ ̉ ̣ Framework(Theo mô hinh MCV). ̀
1.4.Ph
ng phap nghiên c u
ươ
ứ
́
Nghiên c u Zend Framework thông qua công đông Zend Viêt Nam://www.zend.vn/forum. ứ ̣ ̀ ̣
Nghiên c u d i s chi bao cua giao viên h ng dân th c tâp chuyên nghanh. ứ ướ ự ướ ự ̉ ̉ ̉ ́ ̃ ̣ ̀
8 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
CH
NG 2:C S LY THUYÊT
ƯƠ
Ơ Ở
́ ́
2.1.Gi
i thiêu Zend Framework
ớ
̣
2.1.1.Framework là gì
c xây d ng hoàn ch nh, là m t “b khung ” đ ộ ư ệ ượ ự ớ ộ ộ ể ầ ể ụ ỉ ư ộ ậ ờ ể ự ấ thi ậ ệ ả ể Framework là m t th vi n các l p đã đ ậ ệ ở phát tri n các ph n m m ng d ng. Có th ví Framework nh m t t p các “v t li u” ể ề ứ ế ế ướ i l p trình viên, thay vì h ph i m t th i gian đ t t ng lĩnh v c cho ng c t k tr ườ ậ ọ ự ừ khi dùng. Do v y, ng ồ i l p trình viên ch vi c tìm hi u và khai thác các v t li u này r i ườ ậ ti n hành g n k t (t c l p trình) đ t o ra s n ph m. ậ ế ứ ậ ỉ ệ ả ể ạ ế ắ ẩ
2.1.2.Gi
i thi u PHP framework
ớ
ệ
ế t ,PHP là m t ngôn ng script r t ph bi n hi n nay b i lý do:linh ho t,d s ổ ế ấ ộ ở t mã PHP ,hay b t kỳ ngôn ng l p trình nào ạ ễ ử Nh đã bi ư ễ ọ ư ệ ấ dung,d h c ,..v…v .Nh ng đôi khi vi c vi ế khác,có th tr nên đ n đi u và l ng c ng .Đó là lúc PHP framework có th giúp b n. ơ ữ ậ ể ể ở ủ ệ ạ ữ ệ ủ
PHP framework làm cho s phát tri n c a nh ng ng d ng web vi ể ủ ụ ữ ứ ộ ấ ơ ả t b ng ngôn ng ế ằ ể ự ứ ự ổ ượ ụ ờ ữ t l ế ạ ể ứ ữ ự ị ờ ệ ươ ề ệ ụ ổ ộ ạ ườ i ng tác chính xác gi a các t.Đi u này cho phép b n dành ặ t các đo n mã l p ạ ể ế ơ ờ ữ ự PHP tr nên trôi ch y h n, b ng cách cung c p m t c u trúc c b n đ xây d ng nh ng ữ ằ ơ ả ở ấ t ki m đ ng d ng đó,giúp b n ti ả c th i gian ,tăng s n đ nh cho ng d ng và gi m ệ ạ ứ ị ế ụ i mã cho l p trình viên. Ngoài ra PHP framework còn giúp nh ng ng thi u s l n vi ậ ể ố ầ m i b t đ u có th xây d ng các ng d ng n đ nh nh vi c t ớ ắ ầ database ,mã (PHP) và giao di n (HTML) m t cách riêng bi ệ nhi u th i gian đ t o ra các ng d ng web ,h n là phí th i gian đ vi ờ ụ ứ l ạ ề ể ạ i trong m t project. ộ
2.1.3.T i sao chúng ta nên s d ng PHP framework?
ử ụ
ạ
Có r t nhi u lo i ẵ ệ ạ ạ ự ề ấ ể ự ạ ọ ề PHP framework cho riêng mình, tuy nhiên, đi u này ch đ t o ra 1 ỉ ượ ứ ườ ữ ể ấ ớ ạ ầ ộ
ư ổ ượ ố ế t nh t b n nên ch n 1 ạ PHP framework s n có hi n nay cho b n l a ch n, th m chí b n có ậ c khuy n khích ế i đã có ki n th c và hi u bi ế ữ t v ng ế ầ ạ PHP framework phù h p nh t v i nhu c u ợ c ủ ạ ượ ụ c ph i s d ng và phát tri n. M t khác, n u b n mu n xây ặ ọ ấ ạ ố ề ộ ứ i cũng là 1 đi u nên l u ý. M t ộ PHP framework càng đ ườ c nhi u ng ể ề ủ ấ ố ớ ạ PHP framework phù ượ ụ ễ ử ụ ầ ủ ạ ề c nhi u ọ i s d ng hay không. th t dành cho các chuyên gia PHP (PHP expert) , nh ng ng vàng về framework. Khi b n c n tìm m t lo i c a mình, đ ng quên l u ý v đ ph bi n c a nó, ngoài ra ng d ng web c a b n đ ừ ổ ế ủ ư ủ phát tri n b i bao nhiêu ng ể ề ở bi n, t c là nó càng đ ườ ử ụ ượ ứ ế d ng ng d ng cho website c a riêng mình, t ự ứ h p và d s d ng nh t đ i v i nhu c u c a b n – không quan tr ng nó có đ ợ ng ườ ử ụ
PHP framework đ s d ng bao ư ế ố ạ ể ử ụ ế ố Các y u t ư ổ ế ữ ệ b n nên l u ý tr ễ ử ụ ẽ ề ể ạ ế ầ ủ ạ ạ ộ ồ ộ i, CakePHP l c khi mu n tìm ki m 1 ướ g m nh sau: d s d ng, phát tri n nhanh và hi u qu , ph bi n gi a các developer, có các ể ả ồ framework đ u có các đi m y u và th tính năng m nh m , có di n đàn h tr . H u h t các ế ế ỗ ợ ầ ễ m nh khác nhau, ví d Zend Framework đã đ version 1.3 và có đ y đ các c ph bi n t ổ ế ừ ượ ụ ượ tính năng m nh m , c ng thêm 1 c ng đ ng phát tri n h tr extension r ng l n. Ng c ỗ ợ ớ ẽ ộ ể ộ i ít có c ng i là 1 lo i l ờ ạ ạ PHP framework khác, m i ra đ i sau này, nh ng l ư ạ ạ ớ
9 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
i l a ch n vì tính thân ỗ ợ ơ ượ c nhi u ng ề ườ ự ọ đ ng phát tri n h tr h n Zend, nh ng nó cũng đ ư ồ i dùng và d s d ng. thi n v i ng ễ ử ụ ể ườ ệ ớ
ỗ ợ ế ế ạ PHP framework đ u có l ề ố t Nh b n có th th y, m i lo i ấ ư ạ ạ ọ ự v n thêm cho mình, h ể ấ ể ỹ ờ ữ ư ấ ể i th riêng c a nó, th nên t ủ ắ ầ ủ ử ụ ọ t cho nhu c u c a mình và nên s d ng lo i nào. nh t là b n nên tìm hi u k và xài th đ có ch n l a đúng đ n cho nhu c u c a mình. Ngoài ra b n có th nh nh ng ng s giúp b n phân tích các tính năng c n thi ẽ ử ể i đã có kinh nghi m s d ng t ườ ầ ệ ầ ủ ạ ạ ử ụ ế ạ
2.1.4.Nh ng đi m c n l u ý khi s d ng 1 PHP framework ?
ầ ư
ử ụ
ữ
ể
ỗ ể ề ệ ậ ạ ư PHP framework s giúp b n ế ấ L i là đi u không th tránh kh i trong vi c l p trình, nh ng ỏ ệ ấ ẩ t s d d n đ n vi c phát sinh l ẽ t l i các ế ạ PHP i, và ư ệ ế ặ ạ ệ ầ ỗ h n ch r t nhi u sai sót b ng cách cung c p các th vi n mã l nh chu n. Vi ạ đo n mã l p l ề ầ ạ framework s lo i b v n đ này giúp b n. ẽ ạ ỏ ấ ề ằ i nhi u l n không c n thi ế ẽ ễ ẫ ạ ề
Tuy nhiên, b n v n ph i có nh ng chú ý khi s d ng b t kỳ ả ẫ ạ PHP framework nào. Ví d ,ụ ữ ấ ạ ử ụ ả ồ ẫ ớ ạ framework phổ ạ framework có ít ho c không có ặ ớ t b i các cá nhân nào đó v i c vi ế ở ử ụ n u b n không ph i là 1 chuyên gia l p trình PHP, b n nên s d ng 1 lo i ạ ế ậ bi n, có 1 c ng đ ng h tr r ng l n. V n có r t nhi u lo i ộ ề ộ ợ ộ ế ấ c ng đ ng h tr , và các lo i framework này ch y u đ ộ ủ ế ượ ạ ỗ ợ ki n th c không chuyên sâu. ế ồ ứ
M t s l ộ ố ỗ ể ả ả i ph bi n khác là do b n không b o đ m đ ụ ượ ấ ạ ớ framework. Ví d , Seagull ng thích v i ả c c u hình đ xu t phiên b n ấ ấ PHP Framework đ xu t ươ ề ổ ế database và web server t c u hình nh sau: ư ấ
+PHP: PHP 4.3.0 is the minimum, later versions work fine, as do versions PHP 5.1.1 and above. Avoid anything in the 5.0.x series
+MySQL: MySQL 4.0.x, 4.1.x and 5.0.x are all supported. You can also use 3.23.x.
Apache: Seagull works fine with 1.3.x and 2.x series of Apache.
ạ ế ượ ạ ộ ẽ ể c các yêu c u này, thì ầ ế ạ ạ ấ ủ framework tr ề ẽ ỗ t và ti N u b n không đáp ng đ ứ ả ượ ậ ng d n v c u hình đ xu t c a ề ấ ẫ ng d n cài đ t c a 1 ẫ ướ t ki m đ ượ ệ framework s không th ho t đ ng 1 c. Th m chí n u b n là 1 chuyên gia PHP, b n cũng nên xem qua các tài c khi mu n s d ng nó. Ngoài ra ố ử ụ ầ i không c n c nh ng l ặ ủ framework s giúp b n tránh đ ữ ượ ữ ủ ờ ướ ạ ầ c th i gian đ đi vào phát tri n ng d ng c a mình cho nh ng l n ể ứ ụ ể cách hi u qu đ ệ li u h ệ ướ vi c xem h ệ thi ế ế sau.
2.1.5.Các lo i PHP framework ph bi n
ổ ế
ạ
ậ ộ ụ Zend Framework có 1 c ng đ ng phát tri n r ng l n, và nó t p trung vào các ng d ng ể ộ ồ ớ c ph bi n r ng rãi, và có 1 c ng đ ng ng ứ i dùng tích ổ ế ộ ượ ồ ộ c g i là “Công ty PHP”. Zend là 1 trong nh ng ạ ượ ử ụ ườ ệ ữ framework ph bi n nh t hi n ổ ế ớ c nó. web theo phong cách 2.0. Vì đ c c, Zend đ ượ ọ ư nay. Nó có các tính năng m nh m , th ph i có l ả ẽ ộ ượ ứ ế ng đ ườ ng ki n th c khá sâu r ng v PHP đ có th s d ng đ ề ấ c s d ng cho các công ty l n, và b n c n ạ ầ ượ ể ể ử ụ
ứ ậ ọ ệ ớ ắ ự ạ CakePHP là 1 l a ch n tuy t v i cho nh ng l p trình viên có ki n th c nâng cao v ữ ự PHP. Nó d a trên cùng 1 nguyên t c thi ề ế ế ớ ụ khía c nh rapid development , giúp l p trình viên đ y nhanh quá trình phát tri n ng d ng ề ế framework m nh v t k v i Ruby on Rails, là 1 ể ứ ạ ậ ẩ
10 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
ng m cao đã giúp cho CakePHP ỗ ợ ả ở c a h . V i các h th ng h tr , tính đ n gi n và m i tr ủ ọ ớ tr thành 1 trong nh ngframework ở ỗ ườ ph bi n nh t hi n nay. ệ ấ ệ ố ữ ơ ổ ế
ữ ụ ằ ỡ ờ ụ ệ Symfony đ ơ mu n t o ra các ng d ng website doanh nghi p. Đây là 1 PHP ố ạ v i đ y đ các tính năng c n thi ớ ầ ủ c ra đ i nh m m c đích giúp đ nâng cao h n cho nh ng l p trình viên ậ ượ ở framework mã ngu n mồ ứ t. nh ng nó có v ch y ch m h n các framework khác. ậ ẻ ạ ư ế ầ ơ
c bi t đ n nh 1 ế ế ễ ử ụ ễ ể ệ ấ ư framework d hi u và d s d ng, cho hi u su t cao. PHP framework này ph c v m c đích lý t ố ứ ụ ụ ụ ả ữ ễ ẫ ng cho vi c xây ệ ư ộ ẫ ử ụ ng d n s d ng i m i làm quen i m i b t đ u. ơ ấ ẵ ướ ớ ắ ầ PHP framework này r t phù h p cho 1 ng ấ ỗ ợ ấ ườ ợ Codelgniter đ ượ Không gi ng nh Symfony, ưở ư i pháp đ n gi n, và có m t th d ng các ng d ng chia s , l u tr . Nó cung c p các gi ư ụ ả ẻ ư ng d n phong phú, di n đàn h tr , và cung c p s n 1 h vi n video h ướ ệ cho ng ớ ườ v iớ framework.
Seagull cũng là 1 PHP framework t ố ụ ụ ự ườ ữ t ph c v cho vi c xây d ng website và các GUI. Nó ư ệ i m i m i làm quen v i l p trình PHP ả ữ i m i làm quen v i l p trình ớ ớ ườ ẫ ứ ỉ ớ ớ ể ượ ấ ấ ố ớ ợ ủ ọ ấ ẩ ậ ộ ộ ụ ễ ộ là 1 framework c c kỳ d s d ng cho c nh ng ng ễ ử ụ ớ ậ đ n nh ng chuyên gia trong l p trình PHP. V i nh ng ng ớ ậ ữ ậ ế c tùy ch nh đ phù h p v i PHP, Seagull cung c p 1 th vi n các m u ng d ng có th đ ớ ể ụ ư ệ nhu c u c a b n. Đ i v i các chuyên gia PHP, Seagull cung c p các tùy ch n máy ch , bao ầ ủ ạ ng pháp hay nh t, tiêu chu n, và modular codebase – giúp các l p trình viên g m các ph ươ ồ xây d ng các ng d ng web m t cách nhanh chóng và d dàng. Seagull có m t c ng đ ng ồ ứ ự phát tri n r ng l n và nhi u tài li u h ẫ ng d n h tr . ỗ ợ ệ ướ ể ộ ề ớ
Tóm l i:ạ
i pháp tuy t v i cho các l p trình viên phát tri n các k năng ể ậ ỹ ả ệ ệ ờ ố ẩ PHP framework là 1 gi ể ư ự ụ ệ ố ộ ệ ể PHP t đ . ể ứ ạ ả ậ ụ ả h ng b o m t 1 cách tri ạ ứ ữ i m i làm quen hay nh ng b n đã có ki n th c v ng ữ ế ả i mã, tăng t c quá trình phát tri n ng d ng, và chu n hóa mã nh : gi m thi u vi c vi t l ế ạ l nh khi xây d ng các ng d ng web. Không ch giúp các b n c i thi n t c đ phát tri n ể ỉ ụ ệ ứ ng d ng, nó còn giúp b n gi m thi u các l ỗ ổ ể ả ứ ạ framework phù h p cho c nh ng ng ớ ườ ả ữ ợ về PHP.
Ngày nay, có r t nhi u ấ ề PHP framework đ ượ ấ ắ ạ ể c cung c p, và vì v y ch c ch n các b n có ắ ộ framework có các tính năng phù h p v i nhu c u c a mình -- h tr , t c đ , ỗ ợ ố ộ ợ ộ ố PHP framework ph bi n nh t hi n này bao g m: Zend ậ ầ ủ ấ ớ ổ ế ơ ữ ệ ồ th tìm ra m t quy mô và nhi u h n n a. M t s ề Framework, CakePHP, Symfony, Codelgniter, và Seagull.
2.2.Gi
i thi u mô hình MCV
ớ
ệ
Ý t ng chung đ ng sau cách th c làm vi c c a 1 ưở ứ ằ ượ ể ế c k đ n ế ệ ủ PHP framework đ ậ t các mã nghi p v (business logic) và giao di n (UI) thành các ph n riêng bi ề t, đi u ệ . Trong c m t là Model View Controller (MVC). MVC là 1 mô hình (ki n trúc) trong l p trình, cho phép tách bi ệ này đ ng nghĩa v i vi c ta có th ch nh s a chúng 1 cách riêng l ồ ệ ừ MVC thì: ệ ụ ệ ể ỉ ầ ụ ử ẻ ớ
+Model (M) có th hi u là ph n x lý các thao tác v nghi p v (business logic). ệ ụ ầ ử ể ể ề
+View đ c hi u là ph n x lý l p giao di n (presentation layer). ượ ầ ử ể ệ ớ
+Controller làm nhi m v l c các request đc g i t user, có ch c năng nh 1 route: ọ ừ ệ ư ứ đi u ch nh, phân lu ng các yêu c u đ g i đúng Model&View thích h p. ể ọ ề ồ ợ ỉ ụ ọ ầ
11 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
chia nh quá trình x lý c a 1 ng d ng, vì th nên b n có th làm ụ ử ứ ế ể ạ ỏ ủ ữ ẻ ầ ưở ng V c b n,MVC ề ơ ả vi c trên t ng thành ph n riêng l ị ả ệ ừ i. Th c ch t, đi u này giúp đ b n l p trình PHP nhanh h n và ít ph c t p h n. t ơ ớ , trong khi nh ng thành ph n khác s không b nh h ầ ơ ẽ ứ ạ ỡ ạ ậ ự ề ấ
Mô hình MVC đ n gi n ả ơ
S đ 1 chu i MVC đ n gi n ơ ồ ả ơ ỗ
12 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Sau cùng là 1 cách ph c t p h n đ hi u v mô hình MVC ơ ể ể ứ ạ ề
2.2.1.So sánh mô hình MVC v i mô hình 3 l p
ớ
ớ
Đi m gi ng nhau: ố ể
+C hai đ u là mô hình ki n trúc áp d ng trong l p trình đ c tách thành 3 thành ph n. ụ ề ế ả ậ ượ ầ
+Tách bi t s ph thu c gi a ngôn ng l p trình, môi tr ng phát tri n, x lý logic. ệ ự ụ ữ ậ ữ ộ ườ ử ể
m i mô hình có nhi u đi m t ng đ ng nh Presentation Layer và ầ ở ỗ ể ề ươ ư ồ +Các thành ph n View...
Đi m khác bi ể t:ệ
+Khác bi t rõ nh t là cách x lý yêu c u (workflow) c a 2 mô hình. ầ ử ủ ấ Ở ầ MVC, thành ph n Model gi ch c năng c a c l p Business và Data Access trong mô hình 3 l p. ủ ả ớ ớ ệ ữ ứ
13 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
+Mô hinh 3 l p th c s d ng trong l p trình ng d ng, trong khi đó MVC đ ượ ử ụ ứ ụ ậ ớ ̀ ượ c ư u chu ng nhi u trong l p trình website vì tính linh ho t và không b t bu c các DTO nh 3 ng đ ườ ậ ề ạ ắ ộ ộ ư l pớ
2.3.Zend Framework
2.3.1.Gi
i thi u Zend framework
ớ
ệ
2.3.1.1.Zend Framework là gì?
c phát tri n trên n n PHP ồ ở ượ ể ề Zend Framework là s n ph m framework mã ngu n m đ ẩ ng. 5.0 theo chu n h ng đ i t ả ố ượ ẩ ướ
Zend Framwork là framework theo mô hình MVC.
Zend Framework có h tr làm vi c v i Tempalate engine k t h p cùng t ng View ệ ớ ế ợ ỗ ợ ầ
2.3.1.2.Zend Framework làm đ
ượ
c nh ng gì? ữ
+ T o ng d ng web theo mô hình chu n MVC . ạ ứ ụ ẩ
+Url tiêu chu n, ng n g n ẩ ọ . ắ
+H tr phân quy n t i t ng Action . ỗ ợ ề ớ ừ
+Có các thành ph n th viên h tr API c a các nhà cung c p nh Google, Yahoo, Flick . ỗ ợ ư ư ủ ầ ấ
+Qu n lý code d dàng, li t kê và l y các truy v n history . ễ ả ệ ấ ấ
+D dàng phát tri n thêm các ng d ng nhúng, s d ng Plugins. ử ụ ứ ụ ễ ể
2.3.1.3. u khuy t đi m c a Zend Framework:
Ư
ủ
ế
ể
ễ ế ữ ụ ắ ộ sai l m mà các framework tr c m c ph i. ZF là m t PHP framework ra đ i khá tr , ti p thu nh ng tinh hoa và kh c ph c nh ng ữ ầ ờ ắ ướ ả
u đi m: Ư ể
c vi t theo ki u OOP nên nó th a h ng các th m nh c a ki u vi t này. Các ượ ế ừ ưở ể ế ạ ủ ể ế +ZF đ l p c a. ớ ủ
+ZF đ ượ ở ộ ể ấ ẩ ầ ể ừ ế ủ ạ ỉ ử ả
ớ ủ ể ễ ư ổ c BA (Business Analysis) r t chu n và khi c n m r ng b n có th dùng th ủ dùng tính ch t th a k c a OOP. Nói chung là chúng ta không ph i ch nh s a core c a ấ ZF. H u nh các version m i c a ZF ko có nhi u thay đ i trong core nên ta có th d dàng ề ầ update.
+ZF tích h p đ c g n nh t ợ ượ ầ ư ấ ả ể ử ụ t c các th vi n PHP và các CMS khác đ s d ng. ư ệ VD: Smarty , Pear , FCKEditer , Drupal ..
14 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
t c a ZF r t thân thi n và đ n gi n. Tích h p nh ng m i nh t c a l p trình ế ủ ấ ủ ậ ữ ệ ả ấ ợ ơ ớ web nh : JSON - Search - Syndication - Web Services... +Cách vi ư
+ZF đ c s d ng trong các d án l n và có k ho ch phát tri n dài lâu ượ ử ụ ự ể ế ạ ớ
Khuy t đi m: ế ể
+M t nhi u th i gian đ tìm hi u v th vi n c a ZF ề ư ệ ủ ề ể ể ấ ờ
ư ổ ổ ị ườ ử ụ ậ i s d ng khi c p nh t ậ +M t s l p ch a n đ nh, có s thay đ i, gây khó khăn cho ng ự ộ ố ớ các phiên b n.ả
2.3.1.4.Quá trình phát tri n c a Zend Framework:
ể ủ
Các phiên b n đã phát hành: ả
+Zend Framework 1.11, Zend Framework 1.10, Zend Framework 1.9, Zend Framework 1.8, Zend Framework 1.7, Zend Framework 1.6, Zend Framework 1.5, Zend Framework 1.0, Zend Framework 0.9, Zend Framework 0.8, Zend Framework 0.6.
+ Zend Framework 2.0
Chúng ta đi m l i đôi chút v l ch s c a ZF: ể ạ ử ủ ề ị
ng v b framework này •2005 trong cu c h i th o PHP. Zend đã đ a ra ý t ả ộ ộ ư ưở ề ộ
b n này ngoài vài lib h ở ầ ẳ ả ề ừ ả ỗ • Tháng 3 năm 2006: Phiên b n v0.1 m đ u: Ch ng có gì nhi u t tr code và tính toán nhanh ợ
ệ ờ ứ ả ậ ờ • Tháng 7 năm 2007: Phiên b n v 1.0 chính th c ra đ i. Th t tuy t v i khi đã có mô hình chu n hóa M-V-C v i khá nhi u partern trong đó ớ ề ẩ
c đ t phá trong các thành ph n hi n th Form, ả ộ ướ ộ ể ầ ị • Tháng 3 năm 2008: Phiên b n v1.5 M t b Layout, Context. T đây chúng ta c ó multi-layout (multi-template) ừ
c coi là m t phiên b n n đ nh nh t t ượ ấ ừ ộ ị ả i nay. S ra đ i c a: Application, Tool, Nav đã giúp chúng ta d dàng s d ng và ử ụ ả ổ ễ ờ ủ c. • Tháng 4 năm 2009: Phiên b n v1.8 Đây đã đ tr c t ướ ớ h n ch code đ u vào nh tr ế ạ ư ướ ự ầ
ể ả ả ầ ư n nh là • Tháng 10 năm 2010: Phiên b n v1.11: Và chúng ta có th coi đây là phiên b n g cu i cùng c a ZF 1.0. ủ ố
mework 2.0 phiên b n chính ố ề ả • Vào ngày 25-07-2012. ZF team đã cho công b v Zend Fra th cứ
Chúng ta đã có gì trong ngày hôm nay?
ộ ộ ệ ổ ề ầ c thêm vào. Giúp chúng ta có th th c hi n m i d án t •M t b core Zend Framework làm vi c n đ nh v i nhi u thành ph n , các component, ỏ ế ấ r t nh đ n r t ị ớ ể ự ọ ự ừ ấ ượ ệ adapter, plugin đ l n.ớ
15 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
i l p trình PHP •T i gi ớ ờ ZF tr nên r t ph bi n trong và ngoài gi ổ ế ấ ở ớ ậ
•Có c ng đ ng h tr l n. ỗ ợ ớ ộ ồ
t th thì còn v n đ gì t n đ ng trong ZF 1.x? Theo Rob Allen V y đã t ộ ố ồ ấ ế ề - M t thành t quy n sách Zend Framework In Action ể ậ ủ ể ộ ộ i vi ị ả ọ ố ớ ấ ệ ế ặ ớ ộ viên c a nhóm phát tri n ZF và cũng là ng ế ườ trong cu c h i th o ZF 2011 đã đ a ra nh n đ nh: ậ ư •Khó h c đ i v i b t kỳ m t Coder/Developer nào. ộ •Hi u su t x lý còn g p h n ch . (Lý do? d i) ở ướ ạ •Quá nhi u các l p "magic" •Còn nhi u cái không th ng nh t trong các thành ph n. ấ ử ề ề ầ ấ ố
Cái gì m i trong ZF 2.0? ớ
•Có m t tài li u t t h n ệ ố ơ ộ
ng d n, tutorial l i đ giúp ng ướ ạ ể ả i dùng d h c .Tài li u tham kh o ễ ọ ệ và h •G n k t các h ế ẫ ử ụ ẫ ắ ng d n s d ng chi ti ế ườ t kèm theo các ví d c th . ụ ụ ể ướ
Các đ a ch API đ c th ng nh t ỉ ị ượ ấ ố
H tr các ngôn ng khác đ m i ng ỗ ợ ữ ữ ầ ả ể ọ nào VN pro ti ng anh và có kh năng có th đăng ký translate tài li u) i trên toàn c u có th đ c b ng b n ng . (Bác ể ọ ằ ệ ườ ể ế ả
D dàng m r ng ở ộ ễ
c d dàng h n. •Xóa b Singletons partern. Đi u này s giúp vi c m r ng đ ề ở ộ ẽ ệ ỏ ượ ễ ơ
•Lo i b các hard-coded b trùng l p ặ ạ ỏ ị
Nâng c p hi u su t x lý ệ ấ ử ấ
•Tăng t c đ x lý trên 200% so v i ZF1 ố ộ ử ớ
•Các công c giúp deploy cũng nh các tùy ch n đ d dàng x lý khi chuy n đ i h ể ễ ổ ệ ử ư ụ ể ọ server này sang server khác th ng t ố ừ
Đ n gi n hóa ả ơ
•T p trung vào các thành ph n c t lõi ầ ố ậ
•Code d dàng đ c h n ọ ơ ễ
•Có các API phù h p h n ơ ợ
ớ Hi n t i v n đ Autoload v n đang đ •H tr PHP 5.3 v i NameSpace ề ỗ ợ ệ ạ ấ ẫ ượ c th o lu n ậ ả
16 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
ự ớ ự ử ụ ọ L a ch n 1: Có namespace rõ ràng, Không s d ng include_path.V i l a ch n này thì ng và thay vì dùng include_path thì chúng ta dùng namespace. i code v n code bình th ọ ẫ ng ườ ườ L a ch n này giúp chúng ta tăng kho ng 40% hi u su t x lý. ự ấ ử ệ ả ọ
ự ỉ ẫ ẽ ớ ệ ọ th ng load các file c n thi L a ch n 2: S d ng 1 l p - ClassMap nó s là b n đ mapping. Ch d n cho h ồ t thay vì autoload all nh hi n nay ả ư ệ ử ụ ầ ế ố
i code khi deploy s ph i vi ẽ ế ả ớ ự ự ử V i s l a ch n này thì ng ọ ộ ệ ố ườ ớ ự ọ ậ t file mapping này. Và th t khó x lý khi có m t h th ng l n.uy nhiên l a ch n này cho phép chúng ta tăng kho ng ả 150% hi u su t. ệ ấ
Chúng ta s có thêm m t thành ph n m i đó là Plugin Autoload.Nó s giúp chúng ta c g i. V i vi c đó nó s giúp chúng ta tăng ớ ầ đ ng khi nào đ ượ ọ ệ ớ ẽ ẽ ộ ẽ mapping các Plugin và load t ự ộ thêm hi u su t kho ng trên 50% ấ ệ ả
H th ng x lý l ệ ố ử ỗ i m i. ớ
Mô hình MVC .
Controller, dispatcher, hook points.
View.
Model v n ch a có gì thay đ i. ư ẫ ổ
ớ ệ ử ụ ở ộ ả ớ V i mô hình MVC m r ng m i này s giúp chúng ta tho i mái trong vi c s d ng view thông qua các hook points.Và tăng hi u su t thông qua các dispatcher m i. ệ ẽ ấ ớ
2.3.2. M t s l p ph bi n trong ZF
ộ ố ớ
ổ ế
ế •Zend_Db: D a trên đ i tu ng PDO (PHP Data Objects), cung c p cách th c giao ti p ứ ự ấ ố ợ v i database. ớ
•Zend_Controller: giúp l y các request t phía Client và th c thi nó b ng các Action. ấ ừ ự ằ
ế •Zend_View: chính là t ng View trong mô hình MVC, giúp chúng ta hi n th nh ng k t ị ữ ể ầ qu trong x lý Controller và Models ra bên ngoài. ử ả
•Zend_Auth: cung c p m t API cho vi c ch ng th c tài kho n khi đăng nh p vào h ứ ự ệ ả ấ ậ ộ ệ th ng.ố
•Zend_Cache: giúp cho các ng d ng không ph i s d ng CPU ho c truy xu t vào ả ử ụ ứ ụ ấ ặ database quá nhi u.ề
•Zend_Currency: x lý t ề ệ ề ế ấ Zend_Date: x lý t t c các v n đ liên quan th i gian. ử ấ ả t c các v n đ liên quan đ n ti n t ấ ả ấ ử ề ờ
•Zend_Feed: x lý v i Rss và Atom feeds . ớ ử
17 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
ủ ệ ấ ậ ắ •Zend_File: cung c p, h tr m r ng vi c upload và download c a các t p tin. Nó g n li n v i ki m tra các ch c năng c a t p tin. ỗ ợ ở ộ ứ ủ ậ ề ể ớ
•Zend_Filters: l c d li u tr c khi th c hi n m t quá trình x lý nào đó . ọ ữ ệ ướ ử ự ệ ộ
•Zend_Form: đ n gi n hóa vi c t o form và x lý các ng d ng trên website. ệ ạ ứ ử ụ ả ơ
i cho câu h i làm sao ng d ng c1o th s d ng trên ể ử ụ ụ ứ ỏ ư ệ ộ ả ờ •Zend_Local: là m t th vi n tr l toàn th gi i . ế ớ
•Zend_Pdf: T o và x lý các file PDF . ử ạ
ng th c search trên n i dung ươ ứ ộ ấ •Zend_Search: là m t l p cung c p cho chúng ta các ph c a các t p tin l u tr thông tin. ư ủ ộ ớ ữ ậ
•Zend_Translate: là gi ả i pháp cho các ng d ng đa ngôn ng . ữ ụ ứ
•Zend_Validate: dùng đ ki m tra d li u nh p vào có phù h p v i yêu c u hay không . ể ể ữ ệ ầ ậ ợ ớ
t trên t ng action, controller và ụ ứ ề ế ừ •Zend_Acl: giúp chúng ta phân quy n cho ng d ng chi ti module.
2.3.3.Mô hình MVC trong Zend Framework :
B t c m t ng d ng nào đ ấ ứ ộ ứ ụ ượ ả c xây d ng theo mô hình MVC nào thì cũng đi u ph i ự ề i. tuân th nh ng nguyên t c mà mô hình MVC mang l ắ ủ ữ ạ
c tr u t ng hóa s d ng cho vi c truy xu t d Model : Cung c p t p h p các l p đ ấ ậ ớ ượ ợ ừ ượ ử ụ ấ ữ ệ li u. L p ph c v : Zend_DB, Zend_DB_Table . ụ ụ ệ ớ
View : Đ nh nghĩa các thông tin hi n th phía ng i d ng sau khi đ c x lý và tr v t ị ườ ụ ượ ử ả ề ừ ể controller. L p ph c v : Zend_View . ụ ụ ị ớ
Controller : Ki m soát d li u vào ra. Xu t thông tin ra t ng View khi đ ữ ệ ể ầ ấ ượ c th c thi. ự L p ph c v : Zend_Controller. ụ ụ ớ
Hình 2.3.2.1: Mô hình MVC trong Zend Framework .
18 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
ng ừ ườ ẽ ế ậ ẽ ộ ồ ườ i dùng g i m t request t i dùng. Controller s ti p nh n request, phân tích request, sau ử i dùng đã g i. browser thì n i đ u tiên ti p nh n request đó đ u tiên là ế ể ọ ế ừ ườ ử ậ ầ ộ Khi có m t request t đó s phân lu ng request đ g i đ n Model và View tùy vào request mà ng Khi ng controller. Tùy vào request, mà controller s phân lu ng đ n model và view. ơ ầ ồ ế ẽ
Ngoài ra, mô hình MVC trong ZF còn có th đ ể ượ ổ c t ng quát hóa b ng mô hình sau: ằ
Hình 2.3.1.2: Mô hình MVC trong Zend Framework
ụ ạ ộ ượ ư ổ ế i, m t ng d ng đ ừ c xây d ng theo mô hình MVC ho t đ ng t ng quát nh sau: ượ ự ệ ướ ạ ị i d ng HTML. Sau đó đ ồ ể Tóm l ộ ứ ạ c biên d ch thông qua Java Ti p nh n request t ậ Servlet → controller ti p nh n, phân tích request đ phân lu ng đ n model và view. Cu i ố ế cùng tr v trình duy t d trình duy t d ế ậ i d ng m t response HTML. ệ ướ ạ ả ề ộ
19 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
2.3.4.Lu ng x lý công vi c trong Zend Framework ệ
ử
ồ
Hình 2.3.4.1: Quy trình làm vi c trong Zend Framework. ệ
c t o ra và đ i t ng Request Object đ c t o ra . i thích quy trình: Gi •B c 1: M t yêu c u đ ộ ả ướ ầ ượ ạ ố ượ ượ ạ
•B c 2: routeStartup đ c n p . ướ ượ ạ
•B c 3: Router x lý yêu c u . ướ ử ầ
•B c 4: routerShutdown đ c n p . ướ ượ ạ
•B c 5: dispatchLoopStartup đ c n p . ướ ượ ạ
•B c 6: Qui trình g i thông tin đ c b t đ u . ướ ử ượ ắ ầ
•B c 7: preDispatch đ c n p . ướ ượ ạ
•B c 8: Dispathcher g i Action Controller . ướ ọ
•B c 9: Action Controller t o Response Object . ướ ạ
•B c 10: postDispatch đ c n p . ướ ượ ạ
•B c 11: N u có Action nào đ c g i thì quay l c 7 . ướ ế ượ ọ i b ạ ướ
20 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
•B c 12: dispatchLoopShutdown đ ướ ượ ạ . c n p
•B c 13: Response đ i. ướ c g i l ượ ử ạ
2.3.5.Cách làm vi c và xây d ng l p trên Zend Framework?
ự
ớ
ệ
c phân c p theo tên th m c: a. Các l p ớ đ ượ ư ụ ấ
Trên th c t ự ế ộ , Zend Framework d a vào th vi n đ đ c và làm vi c trên các l p m t ệ ớ ự ng d n chi ti ư ệ t c a chúng đã đ ẫ ể ọ ượ ế ủ ủ c th hi n rõ nét ngay trên tên c a ể ệ ấ ụ ể ở ườ cách r t c th . B i đ chúng .
Ví d : ụ
V i class Zend_Db_Table ta có th m c Zend/Db/Table.php. ư ụ ớ
ư ụ V i class Zend_Application_Bootstrap_Bootstrapper ta có th m c ớ library/Zend/Application/Bootstrap/Bootstrapper.php .
b. Controller thể hi n trên URL: ệ
http://localhost/zfdemo/admin/: Tìm t i indexAction trong adminController đ th c thi . ớ ể ự
i loginAction trong controller adminController ớ http://localhost/zfdemo/admin/login: Tìm t đ th c thi . ể ự
i vewsAction trong controller newsController và ớ http://zend.com/news/views/id/15: Tìm t get id=15 đ th c thi. ể ự
21 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
2.3.6.C u trúc th m c c a m t project trong ZF (m t module): ộ
ư ụ ủ
ộ
ấ
Đ i v i m i project đ ỗ ố ớ ượ ự ấ ư ụ ủa m t project ộ ng t c xây d ng trong ZF đ u có c u trúc th m c c ề nh sau: ự ư t ươ
ấ ộ
2.3.6.1.C u trúc th m c c a m t project trong ZF ư ụ ủ
.
2.3.7.Cai đăt ng dung đâu tiên v i Zend Framework
̣ ứ
ớ
̀ ̣ ̀
5.3.3 tr lên. Đ ch y t ở ể ạ ố ử ụ t, tôi khuy n cáo s d ng ế xampp phiên b n 1.7.4 (t ng đ ừ ng PHP 5.3.5). PHP yêu c u trong h th ng là t ươ ệ ố ươ ầ ả
ị ộ ng link này: ạ ầ ậ ố ủ Zend Framework 2.0. ườ ể
i nén b n s th y c u trúc nh hình bên d i: Đ u tiên, b n c n chu n b b source g c c a ầ ẩ B n có th truy c p và download theo đ ạ https://github.com/zendframework/ZendSkeletonApplication/zipball/master" . Khi gi ư ạ ẽ ấ ấ ướ ả
22 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 2.3.7.1 :Câu truc môt d an Zend Framework 2.0 ̣ ự ̀ ́ ́ ́
i, b n c n download phiên b n zend framework 2.0 t i đây: ế ớ ạ ầ ả ạ K t http://framework.zend.com/downloads/latest.
ấ i nén và copy th m c library vào th m c vendor/ZF2 c a chúng ta theo c u ự ụ ư ụ ủ ả trên. Sau đó gi hình ở
ư ệ ố
ư ệ ng d n sau: vendor/ZF2/library/Zend. ườ ể ứ ữ ệ ư ụ ẫ ư ụ ể ứ ủ ứ ụ ư ụ ư ụ ư ụ c ch a theo đ ứ ư ụ ư ụ ứ ư ứ ờ + Th m c config: Ch a các file config chính cho h th ng. + Th m c data: Dùng đ ch a d li u và các file cache n u chúng ta có dùng cache. ế ư ệ + Th m c vendor: Là th m c dùng đ ch a th vi n zend framework 2.0. Th vi n ể ứ đ ượ + Th m c Module: Là th m c dùng đ ch a các module c a ng d ng. + Th m c Public: Là th m c ch a các thông tin nh css, js, images. Đ ng th i ch a file ồ ư ụ index.php chính và .htaccess..
ư ụ ư ụ ẵ Đ ng th i trong th m c config cũng đã có s n file tên: application.config.php. Trong th m c public đã có s n th m c js, css, images và file index.php, .htaccess. ẵ ư ụ ồ ờ
Đây là file ch a thông tin c u hình nh khai báo module nh khai báo module có trong h ư ệ ấ ứ ư th ng, khai báo th vi n vendor, cache,…. ư ệ ố
K t i chúng ta xem th m c module có gì. Th m c module hi n t ế ớ ư ụ ư ụ ặ ị ạ ứ ệ ạ ẽ ẽ ụ i s có th m c ư ụ ả ế Application. Đây là module m c đ nh c a h th ng. Khi ch y ng d ng ta s có k t qu ủ ệ ố nh sau: ư
23 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 2.3.7.2 :Module măc đinh hê thông ̀ ̣ ̣ ̣ ́
Ch y ng d ng đ u tiên v i zend Framework 2.0: ạ ứ ụ ầ ớ
T i th m c module t o th m c Home theo c u trúc sau: ư ụ ư ụ ạ ấ ạ
Module/ ------/Home ------------/config ------------/view ----------------- /home -----------------------/home ------------/src -----------------/Home -----------------------/Controller -----------------------/Model -----------------------/Form
Nh b n th y đ y, ư ạ ượ Ứ ụ ả ệ t. ụ ấ ệ ẽ ấ ấ ở Zend Framework 2.0. ng d ng đ ứ ụ ể ừ t. C th là module manager. Khi đó, các ng d ng s đ ứ ộ ấ ớ đây chúng ta ph i t p làm quen v i ki n trúc m i ộ ớ Zend Framework 1.12. Vì th , ế ở ộ ơ ế c tách riêng bi t c module ấ ả ế ớ ả ậ c qu n lý b ng m t c ch ằ module riêng bi ẽ ượ Và chúng ta s c u hình t ng module m t ch không g p chung c u hình t gi ng v i ố này.
C th :M t module s bao g m 3 th m c chính là config, view, src. ụ ể ộ ư ụ ẽ ồ
24 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
•Config: ch a file c u hình c a module. ấ ủ ứ
•View: Ch a các file view c a module. ư ủ
•Src: Ch a các thành ph n controller, model và form c a module. ứ ủ ầ
Ti p t c ta t o file Module.php trong module home. V i n i dung sau: ế ụ ớ ộ ạ
array( __DIR__ . '/autoload_classmap.php', ), 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, ), ), ); }
public function getConfig() { return include __DIR__ . '/config/module.config.php'; } }
M c đích c a file này là đ đ nh nghĩa 2 ph ng th c getAutoloaderConfig() và ể ị ủ ươ ứ ụ getConfig().
File module.php này đ c xem nh m t module manager. Nó s giúp h th ng t ượ ư ộ ệ ố ẽ ự ộ đ ng g i 2 ph ọ ươ ng th c trên. ứ
Ph Ở ươ ể ng th c getAutoloaderConfig() chúng ta c u hình cho c ch autoloading hi u ơ ế ứ ấ h th ng khi load d trên c ch NameSpace c a PHP 5.3. ơ ế ệ ố ự ủ
Ph ứ ươ ạ ể ệ ố ủ ể ứ ng th c getconfig() cho phép n p n i dung module.config.php. Đây là file ch a ộ thông tin c u hình chính c a module. Ví d nh : Khai báo đ h th ng hi u module, k t ế ụ ư ấ n i,…ố
T o ti p file autoload_classmap.php v i n i dung: ớ ộ ế ạ
25 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
ệ ụ ủ ữ ệ ỗ ế Nhi m v c a file này là tr v m t m ng d li u r ng. ả ả ề ộ T o ti p file module.config.php trong th m c config c a home : ủ ư ụ ạ Home/config/module.config.php v i n i dung: ớ ộ
array( 'invokables' => array( 'Home\Controller\Home' => 'Home\Controller\HomeController', ), ), 'view_manager' => array( 'template_path_stack' => array( 'home' => __DIR__ . '/../view', ), ), );
Đây là file c u hình thông tin chính c a chúng ta. T i đây có 2 ph n c n quan tâm là ấ ầ ầ ủ ạ ỉ ớ ườ ủ ỉ controller và view_manager. V i controller ta ch ra các controller t n t ng d n t V i view_manager ta ch ra đ ẫ ớ Ti p t c trong src/Home/Controller t o file tên HomeController.php v i n i dung: ạ i trong ng d ng. ụ ồ ạ ứ i view c a chúng trong ng d ng. ụ ứ ớ ộ ớ ế ụ
use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel;
class HomeController extends AbstractActionController { public function indexAction() { return array( 'welcome' => 'Hello Zend Framework 2.0 - By QHOnline.Info', ); } }
Ti p t c, trong th m c view/home/home t o file index.phtml v i n i dung nh sau ư ụ ế ụ ớ ộ ư ạ
t v thông tin ạ ệ ố ầ ế ề Sau khi đã t o view và controller. Ta c n khai báo cho h th ng module bi ư ể zend framework hi u s t n t ừ ạ ể ự ồ ạ ủ i c a ư ụ ở controller mà chúng ta v a t o. Cũng nh URL đ chúng. M file module.config.php trong th m c home/config S a l i v i n i dung sau: ử ạ ớ ộ
26 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
'controllers' => array( 'invokables' => array( 'Home\Controller\Home' => 'Home\Controller\HomeController', ), ), // The following section is new and should be added to your file 'router' => array( 'routes' => array( 'home' => array( 'type' => 'segment', 'options' => array( 'route' => '/home[/:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[0-9]+', ), 'defaults' => array( 'controller' => 'Home\Controller\Home', 'action' => 'index', ), ), ), ), ), 'view_manager' => array( 'template_path_stack' => array( 'home' => __DIR__ . '/../view', ), ), );
N u b n đ ý k s th y, ta ch thêm m i đo n khai báo router vào mà thôi. ỹ ẽ ấ ế ể ạ ạ ỗ ỉ
'router' => array( 'routes' => array( 'home' => array( 'type' => 'segment', 'options' => array( 'route' => '/home[/:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[0-9]+', ), 'defaults' => array( 'controller' => 'Home\Controller\Home', 'action' => 'index',
27 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
), ), ), ), ),
t l p và ả ả ế ậ i c a các controller khi Zend Framework 2.0 không t c u hình thì nó m i hi u đ ấ đ ng hi u nh phiên b n 1.12. Mà chúng ta ph i thi ể ự ộ ư c s t n t ể ượ ự ồ ạ ủ ta g i.ọ ớ
Sau cùng, ta ph i khai báo cho ng d ng c a zend s t n t ự ồ ạ ủ ệ i c a module home băng vi c ụ ứ ủ ả ̀ m file theo đ ng dân: zf2.0/config/application.config.php . ở ườ ̃
T i đây ta thêm vào dòng sau: ạ
array( 'Application', 'Home' // Đây là dòng ta thêm vào để khai báo module home. ), 'module_listener_options' => array( 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), 'module_paths' => array( './module', './vendor', ), ), );
ạ ứ ụ Sau cùng ch y ng d ng: http://localhost/zf2.0/public/home và k t qu s hi n th nh mong đ i. ả ẽ ể ị ư ế ợ
c quy trình làm vi c c b n c a zend framework 2.0 . ể ượ ệ ơ ả ủ Nh v y, qua ví d này đã hi u đ ụ ư ậ i vài đi m : Ghi chú l ể ạ
ừ
ng tác. ố ừ ươ ư ụ ế ố ề ệ ạ ị •Zend c u hình theo t ng module. ấ • Zend s d ng router đ ch y t ng controller. ử ụ ể ạ ừ • Zend s d ng th m c view bên ngoài đ t ể ươ ử ụ controller sang view có nét t truy n tham s t ớ ng đ ng v i • Zend s d ng y u t ồ ề ử ụ i view đã qua 1 l n duy t giá tr ). i d ng m ng và t codeigniter (truy n tham s d ầ ả ố ướ ạ • Zend s d ng namespace làm n n t ng th hi n ki n trúc linh đ ng. ộ ể ệ ề ả ử ụ ế
28 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
NG 3:
NG 3.XÂY D NG NG DUNG WEBSITE BOOK
ƯƠ
ƯƠ
Ứ
Ự
̣
CH CH SHOP BAN HANG QUA MANG
́ ̀ ̣
3.1.Đ C T H TH NG Ả Ệ
Ố
Ặ
3.1.1.Gi
i thi u
ớ
ệ
ệ ẩ ị ̀ ́ ươ ̣ ử ườ ̣ ứ ư ả ằ ả . Nh m giúp ng ủ ả ng mai điên t ẫ ủ ộ ự ế ể ế ầ ả ế ậ ẩ ̣ Là hình th c đ a s n ph m la sach, d ch v ...kinh doanh c a doang nghi p lên Website ụ th t m t cách chính xác tính năng, i tiêu dùng có th bi nôi dung, m u mã , giá c ....c a s n ph m đó mà không c n tr c ti p ph i đ n t n công ty xem.
3.1.2.Mô t
h th ng
ả ệ ố
3.1.2.1.Gi
ớ
i thi u s n ph m lên website ẩ
ệ ả
c gi i thi u chi ti S n ph m s đ ẩ ẽ ượ ả ớ ệ ế t trên website g m thông tin : ồ
* Danh m c s n ph m. ụ ả ẩ
* Tên s n ph m. ả ẩ
* Lo i s n ph m. ạ ả ẩ
* Giá s n ph m. ả ẩ
* nh s n ph m. ả ả ẩ
* chi ti t s n ph m. ế ả ẩ
* th i gian bán s n ph m. ả ẩ ờ
3.1.2.2.Khách hàng.
Khác hàng s xem m t hàng mu n mua trên website và đ t hàng. Khach có th góp ý cho ẽ ể ặ ặ ố ́ s n ph m.. ả ẩ
N u mua hàng khách hàng c n đăng ký thành viên r i đ t hàng. ồ ặ ế ầ
Thông tin đ n đ t hàng g m có: ặ ơ ồ
* Email.
* Đi n tho i. ệ ạ
* Tên s n ph m. ả ẩ
* Tên khách hàng.
29 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
* Đ a ch l y hàng. ỉ ấ ị
Khi đ t hàng và thanh toán ti n cho đ i đ i lý,qua tai khoan ngân hang. ạ ạ ề ặ ̀ ̉ ̀
Th ng kê các s n đã đ c đ t hàng. ả ố ượ ặ
Sau khi h t th i gian đ t hàng. Đ i lý th ng kê s l ố ả ượ ố ượ ẽ ấ ạ ng s n ph m đ ừ ặ c khách hàng đ t ẩ nhà cung c p v giao cho ấ ề ế mua, n u sô l ượ ế khách hàng, ng ờ ng đ t m c chu n đ t ra, thì đ i lý s l y hàng t ạ i, đ i lý h y đ n đ t hàng c a khách hàng. c l ặ ượ ạ ạ ặ ẩ ủ ơ ặ ứ ạ ủ
yêu c u h th ng bán sách tr c tuy n
3.2.B n đ c t ả
ặ ả
ệ ố
ự
ế
ầ
S n ph m: Tên s n ph m, thông tin chi tiêt, nh minh h a,gián bán, giá g c, đăc điêm,, ́ Ả ẩ ả ọ ố ̣ ̉ ả ẩ đ n v tính,. ị ơ
Khách hàng: Tên khách hàng,email, s đi n thoai, đ a ch . ỉ ố ệ ị
Nhóm s n ph m: Tên nhóm s n ph m. ả ẩ ẩ ả
Đ n đ t hàng: S phi u mua hàng, Email, s đi n tho i, tên m t hàng, s l ố ệ ố ượ ế ạ ặ ố ơ ng, đ n ặ ơ giá, ngày đ t.ặ
Tin t c: Tiêu đ , n i dung, tóm t ề ộ ứ ắ ả t, nh minh h a, ngày đăng. ọ
Quy n: Tên quy n. ề ề
Qu n tr : Tên qu n tr . ị ả ả ị
3.2.1.M c tiêu
ụ
ự ư ế ể ể ằ ế ạ ự ế ữ ố ạ ạ ề ể Website bán sách tr c tuy n nh m đ a các quy n sách lên m ng giúp khách hàng có th tìm ki m nh ng quy n sách mình mu n,đăng ký mua sách tr c ti p trênm ng.Thông qua website khách hàng có th tìm th y nh ng thông tin v các quy n sách theo lo i v tên sách,tên tác ề t n i dung quy n sách,giá bán…. gi ấ ,tên nhà xu t b n,tóm t ể ể ấ ả ữ ắ ộ ể ả
3.2.1.2. Đ i t
ng:
ố ượ
Đ i t ố ượ ng c a trang web g m có 2 nhóm chính: ồ ủ
Ng i qu n lý website: ườ ả
•Đ a ra danh m c các ư ụ lo iạ sách, t o m i, c p ạ ớ ậ nh t,s a,xóa các lo i sách ậ ử ạ
ả , ừ ể ạ ề ữ nhàxu t b n, n i dung tóm t •Đ a thông tin v nh ng quy n sách c th trong t ng lo i sách: tên sách,tên tác gi ụ ể ư ấ ả t c a quy n sách, giá bán, hình nh trang bìa c a quy n sách… ả ắ ủ ủ ể ể ộ
•Tìm ki m, t o m i, c p nh t,s a, xóa thông tin m t quy n sách. ớ ậ ậ ử ế ể ạ ộ
•Qu n lý vi c đăng nh p c a nh ng khách hàng. ậ ủ ữ ệ ả
30 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
•Qu n lý vi c đăng ký mua sách c a khách hàng. ủ ệ ả
•Th ng kê s l ng ng i truy c p…. ố ượ ố ườ ậ
Ng i dùng (khách hàng): ườ
a.Thành viên ch a đăng ký: ư
ữ ủ ủ ể •Tìm ki m, xem các thông tin c a trang web,thông tin c a nh ng quy n sách theo t nglo i… ừ ế ạ
b.Thành viên đã đăng ký:
ế ữ ủ ủ ể •Tìm ki m, xem các thông tin c a trang web,thông tin c a nh ng quy n sách theo t ng ừ lo i…ạ
•Đăng ký mua sách.
•Thay đ i thông tin cá nhân. ổ
ả ứ
ế ch c năng c a h th ng:Website bán sách tr c tuy n
ủ ệ ố
ự
3.2.1.3.B ng mô t ả có nh ng module
ữ
STT 1 t k trang ch và các trang trong ế ế ệ t k giao di n MÔ TẢ -thi ế ế ủ TÊN MODULE Thi website ớ ệ ứ ể ữ 2 Module tin t cứ i thi u thông tin tiêu bi u ,tin t c ,thông tin qu ng -Gi ả cáo ,nh ng quy n sách tiêu bi u ể ể -Tin t c m i ớ ứ
-Tin khuy n mãi ế
-Các lo i thông báo ạ
-Tin v nh ng sách cũ ề ữ
-Thêm s a xóa các b n tin ử ả
ọ ể ổ ậ ả ớ ị
3 Module catalogue -L a ch n hi n th các b n tin m i,tin n i b t trên trang ự chủ -phân lo i danh m c sách ụ ạ
-li ệ ệ ừ t k t ng lo i sách theo m c ụ ạ
ả ấ , tên nhà xu t t n i dung chính c a quy n sách, giá bán, hình ủ ể -thông tin quy n sách: tên sách, tên tác gi b n,tóm t ả nh trang ả ể ắ ộ bìa quy n sách… ể
31 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
-gi hàng đ khách hàng đăng ký mua sách trên web ỏ ể
ị ớ ể ấ 4 ế ể ử ụ ạ ủ Module đăng ký đăng nh pậ -hi n th sách m i, sách bán ch y nh t,sách khuy n mãi. -đăng ký tr thành thành viên c a website đ s d ng các ở d ch v c a website t ị t nh t ấ ụ ủ ố
3.2.1.4.Quy trình đ t hàng
ặ
Hinh 3.2.1.4.1:Quy trinh đăt hang ̀ ̀ ̣ ̀
3.3.Phân tích h th ng
ệ ố
3.3.1.S đ Use Case
ơ ồ
S đ Use Case t ng th ơ ồ ổ ể
32 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 3.3.1.1: S đ Use Case t ng th ơ ồ ổ ể ̀
Use case c p nh t ậ ậ
Hinh 3.3.1.2: Use case c p nh t ậ ậ ̀
ẩ . Phân rã Use case c p nh t s n ph m ậ ậ ả
33 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 3.3.1.3: Phân rã Use case c p nh t s n ph m ậ ậ ả ẩ ̀
. Phân rã Use đ t hàng ặ
Hinh 3.3.1.4: Phân rã Use đ t hàng ặ ̀
34 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
3.4.Mô hình quan ni m d li u
ữ ệ
ệ
Hinh 3 .4.1 :Mô hình quan ni m d li u ữ ệ ệ ̀
3.5.S đ ch c năng ơ ồ ứ
Hinh 3.4.2: S đ ch c năng ơ ồ ứ ̀
35 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
3.6.C u hình ng d ng
ụ
ứ
ấ
Hinh 3.5.1: C u hình ng d ng ụ ứ ấ ̀
3.6.1.Môt sô ph
ng th c c ban trong Zend Framework
́ ươ
ứ ơ ̉
̣
3.6.1.1.Kh i tao kêt nôi database
ở
̣ ́ ́
File: config\application.config.php .
36 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
return array(
'modules' => array(
'Application',
'Shopping',
), // Khai bao 2 module đ c load ượ ́
'module_listener_options' => array(
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php',
),
'module_paths' => array(
'./module',
'./vendor',
),
),
);
File : config\autoload\global.php
37 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
/**
* Global Configuration Override
*
* You can use this file for overridding configuration values from modules, etc.
* You would place values in here that are agnostic to the environment and not
* sensitive to security.
*
* @NOTE: In practice, this file will typically be INCLUDED in your source
* control, so do not include passwords or other sensitive information in this
* file.
*/
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=shopping;host=localhost',
'driver_opti ons' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
),
'service_manager' => array(
'factories' => array(
'Zend\D
38 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
b\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
),
),
);
3.6.1.2.Câu hinh template
́ ̀
public\index.php
39 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
/**
* This makes our life easier when dealing with paths. Everything is relative
* to the application root now.
*/
define('PUBLIC_PATH', dirname(__FILE__));
define('TEMPLATE_PATH', PUBLIC_PATH.'/templates');
define('FILES_PATH', PUBLIC_PATH . '/files');
define('TEMPLATE_URL', '/zendstack/public/templates');
//Duong dan den thu muc ung
define('APPLICATION_URL','/zendstack');
define('SRCIPTS_URL', APPLICATION_URL . '/public/scripts');
//Duong dan den thu muc /templates
define('CAPTCHA_URL', APPLICATION_URL . '/public/captcha');
define('FILES_URL', APPLICATION_URL . '/public/files');
chdir(dirname(__DIR__));
// Setup autoloading
include 'init_autoloader.php';
// Run the application!
Zend\Mvc\Application::init(include 'config/application.config.php')->run();
3.6.1.3.Hiên thi danh muc san phâm theo mô hinh đa câp
̉ ̣ ̣ ̉ ̉ ̀ ́
module\Shopping\src\Shopping\View\Helper\BlkCategoryMenu.php
40 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
protected $_db;
public function __construct($db)
{
$this->_db = $db;
}
public function __invoke($name=null,$val=null)
{
$view = $this->view;
$result = $this->_db->listItem();
$cid = ($view->arrParam['id'])?$view->arrParam['id']:0;
$strMenu = $this->createMenu($result,0,$view);
require_once ('html/default.php');
}
public function createMenu($sourceArr,$parents =0, $viewObj ){
$newMenu = '';
$this->recursiveMenu($sourceArr,$parents = 0,$newMenu,$viewObj);
return str_replace('
}
public function recursiveMenu($sourceArr,$parents = 0,&$newMenu, $viewObj){
if(count($sourceArr)>0){
$newMenu .= '
- ';
- ' . $value['name'] . '';
}else{
$link = $viewObj->url('shopping-category',array('action'=>'index', 'id' => $value['id']));
$newMenu .= '
- ' . $value['name'] . '';
}
$newParents = $value['id'];
unset($sourceArr[$key]);
$this->recursiveMenu($sourceArr,$newParents, $newMenu, $viewObj);
$newMenu .= '
';
foreach ($sourceArr as $key => $value){
$liMenu = 'liMenu_' . $value['id'];
if($value['parents'] == $parents){
if($value['parents'] == 0){
41 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
$newMenu .= '
}
}
$newMenu .= '
}
}
42 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
3.7.Hinh anh Website
̀ ̉
Hinh 3.6.1: Trang chu ̀ ̉
43 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 3.6.2: Đăng ky ̀ ́
44 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 3.6.2:Đăng nhâp ̀ ̣
45 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 3.6.3:Chi tiêt san phâm ̀ ́ ̉ ̉
46 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 3.6.3:Chi tiêt san phâm ̀ ́ ̉ ̉
47 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Hinh 3.6.4:Gio hang ̀ ̉ ̀
48 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
Kêt luân ́ ̣
́ ́ ̣ ̀ ̀ ̣ ̀ ̀ ng t ớ Xây d ng website ban sach qua mang trên nên Zend Framework 2.0 la môt đê tai m i ̉ i kêt qua cua ự môt hê thông ap dung công nghê m i it nhiêu đa anh h ̣ ớ ̉ ̣ ̣ ̣ ́ ́ ̣ ́ ̀ ̃ ̉ ́ ̉ ự me.Viêc xây d ng đê tai.Tuy nhiên sau khi hoan tât ,đê tai nay cung thu đ ớ c nh ng kêt qua nh sau: ưở ̉ ư ượ ư ̀ ̀ ̀ ́ ̀ ̀ ̀ ̃ ́
Hoan thanh cac mô hinh hê thông :S đô Use case,mô hinh d liêu va c s d liêu đê ̀ ơ ở ữ ữ ơ ̉ ̀ ̀ ́ ̀ ̣ ́ ̀ ̀ ̣ ̣ phuc vu cho hê thông ̣ ̣ ̣ ́
Hoan thanh ch c năng xem menu san phâm,chi tiêt san phâm,đăng ky, đăng nhâp, gio ứ ̉ ̀ ̀ ̉ ̉ ́ ̉ ̉ ́ ̣ hang…̀
Ap dung Zend Framework 2 vao công viêc xây d ng ng dung web,dê dang nâng câp va ự ứ ̀ ́ ̣ ̀ ̣ ̣ ̃ ̀ ́ phat triên. ́ ̉
Bên canh đo đê tai con nhiêu măt han chê ̣ ́ ̀ ̀ ̀ ̀ ̣ ̣ ́
Giao diên kha đ n gian ́ ơ ̣ ̉
Cac ch c năng cho câp nhâp ,xoa,s a san phâm cho ng ́ ử ứ ườ ư i quan tri va gio hang ch a ́ ̣ ̣ ̉ ̉ ̉ ̣ ̀ ̉ ̀ hoan thanh ̀ ̀
49 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀
Giao viên h ng dân:Ngô Văn Công ướ ́ ̃
̉ : Tai liêu tham khao
̀ ̣
Diên đan Zend Framework Viêt Nam: Zend.vn/forum ̃ ̀ ̣
́ ử ự ̣ ́ ̣ ̣ ̣ ̣ ́ ̉ ̣ ̀ ̣ ̀ ̉ Luân văn tôt nghiêp đai hoc “xây d ng hê thông quan ly s dung phong hoc trên nên tan Zend Framework “ cua L u Tr ng Hai Lân ườ ư ̉ ̉
do cac hoc viên khoa hoc online zendvn hoan ồ ́ ̣ ́ ̣ ̀ Mã ngu n Shopping b ng Zend Framework ằ thanh download tai ̣ http://www.zend.vn/forum/viewtopic.php?f=25&t=1405 ̀
Diên đan ̀ http://www.qhonline.info/forum ̃
------nêu cân code liên hê facebook “ https://www.facebook.com/nam.nguyenhoai.716”--- ́ ̀ ̣
50 Sinh viên th c tâp:Nguyên Hoai Nam MSSV:51130954 ự ̣ ̃ ̀