Xet met cach dog quit, cac dinh nghia TMDT duce chia thanh hai nhem tity thuec vao quan diem: - Theo nghia hcp, TMDT chi don than b6 hcp thuang mai dien ter trong viec mua ban hang hem
Trang 1BQ GIAO DVC DAO T30 TRITONG BSI HQC THANG LONG
—o0o
THANG LONG
UNIVERSITY
KHOA LUAN TOT NGHIEP
THLIONG MAI DIEN TIT
MAO VIEN HUONG DAN:
SIKH VIEN THVC
CHUYEN NGANH:
Ths Trim Tan Tan Nguyen Bat) Trung - A15042 Nguyen Chi Cueing - A15897 Ging Nghe Thong Tin
HA NQI - 2013
Trang 2IA CAM ON
D4 hoin thinh luan van nay chtIng t8i xin chin third' gni itri cam an den i quy thiy c8 trong khoa Toin Tin trubng D3i hqc Thiing Long a quan tam gittp der chi bio tan tinh trong qui trinh thvc hien de tai Nher d6 chi ng toi da tiep thu dtrqc nhieu y kien d6ng g6p vi nhan xet qui biu dm qui thiy c8 thong qua cic bu6i bio
ye a cuang
Ching ten xin girl 16i cam on sau sic nhAt den ThS Tri'n Tuan Toin da trvc tiep hueng can, dinh hueng chuyen mon, quan tim gitip der *In firth vi tao mqi diau kien thuan lqi !that trong qui trinh Ong tic cling nhu Ow hien luan van
Tren het chin toi xin big to long kinh trong vi sv biet an siu sic den gia dinh da tqo mqi dieu icien tot nhit 44 chting toi ce the hoin thimh tot mqi ding viep trong qui trinh thvc hien luan van Ben card' d6, ching toi cling xin girl lai cim an
hien luan van
Mac 46 da rit ct ging tong qui trinh thtrc hien nhung luan van idgeg the Minh nhfing thieu set Ching toi mong 'than dtrqc sv g6p y cis quy diAy co vi ban be
Trang 3MVC LVC
1.1 Giei thien ht thong thung mgi Min tn (E-Commerce) 1
1.3 Framework thieving mgi dien tdr con c6 nheng 0? 3 1.4 Framework cAa chung to s81Am dirge nhttng gi? 4 1.5 Lqi fch ter viec xily dgng Framework thsrang m0 dimn tv 7
Trang 43.7.5 Thus vin Session 37
PHAN 4 DAC TA VA XIV DIPIG CAC cllirc NANG CiJA Ilt THONG
Trang 6PHAN 6 KI THUAT NANG CAO HIP NANG VA BAO MAT CHO INC
Trang 7DANH MVC HiNH ANH
Hinh 6.2 Tucmg tac diing b0 trong CEng clung web truyen thiing vi di b0 trong vng
Trang 8DANH MVC WET TAT
Trang 9PHAN 1 G161 THIEU
1.1 Gioi (Mtn re he &Ong Hwang mai dien tir (E-Commerce)
Trong vii nam ter lai day, dac biet la 6 Viet Nam, cum ter Thuong Mai Dien Ter (TMDT) (con gel la E-Commerce hay E-Business) xuat hien ngay met phi) bien Pham
vi cua TMDT rat rOng, bao quit hau nhu mei hinh thai hog deng kinh t4, khong chi bao gam buon ban hang hea va dich vu, vi the kho c6 the um met CUM nghia co ranh gieri re ret cho khai niem TMDT Xet met cach dog quit, cac dinh nghia TMDT duce chia thanh hai nhem tity thuec vao quan diem:
- Theo nghia hcp, TMDT chi don than b6 hcp thuang mai dien ter trong viec mua ban hang hem va dich vu thong qua cac phuong tien dien ter, nhet la qua Internet va cac mang lien thong khac;
Theo nghia Ong, TMDT la cac giao dich tai chinh va thtrcmg mai bing phuong tien dien ter nhu: trao din de lieu dien ter, chuyen tien dien t6 va cac hoat &Ong nhu girl/nit tien bang the tin dung
TMDT co the duce phin loci theo tinh each ciut ngueri tham gia:
Ngueri tieu dung:
+ C2C (Consumer-To-Comsumer) Ngueri tieu dimg veri ngtred tieu dimg; + C2B (Consumer-To-Business) Nguai tieu dung vai doanh nghiep;
+ C2G (Consumer-To-Government) Ngtrei tieu clang v6i chinh
Doanh nghiep:
+ B2C (Business-To-Consumer) Doanh nghiep veri ngtreri tieu dimg;
+ B2B (Business-To-Business) Doanh nghiep veri doanh nghiep;
+ B2G (Business-To-Government) Doanh nghiep veri chinh phi;
+ B2E (Business-To-Employee) Doanh nghiep veri nhan vien
Chinh phi:
+ G2C (Government-To-Consumer) Chinh phit veri ngueri tieu &mg;
+ G2B (Government-To-Business) Chinh phu veri doanh nghiep;
+ G2G (Government-To-Government) Chinh ph6 ven chinh
Ngtreri to khai thac sire mash cua TMDT vi met se bar do nhu:
- TMDT gulp cho cac doanh nghiep nitm dirge thong tin phong phu ve thi throng va deli tic;
- TMDT giip gam chi phi sin xuit;
- TMDT giup giam chi phi ban hang vi tiep thi;
- TMDT thong qua Internet gitip ngueri tieu thing va cac doanh nghiep giam ding Ice theri gian va chi phi giao dich;
Trang 10- TMDT tao dieu kien cho viec thiet lap vi ding et mei quan he giaa cic thanh phan tham gia vao qua trinh thuong mai;
- TMDT tao dieu kien sem tiep can nen kinh 4 s6 hod
Voi nhang loi ich nhu vay, TMDT ngily cling phat trien math me, bieu hien qua
viec nhftng hang kinh doanh Ulm tuyen xuit hien ugly met nhieu tren Internet
Cie cling dok tieu bieu cua met giao dich tree cite trang kink doanh true tuyen nay:
1 Khach hang, tir met may tinh tai met nth nao do, dieu nherng thong tin thanh town vi dia chi lien he vao dun dat hang (Order Form) elm Website ban hang (con goi la Website TMDT) Doanh nghiep nhk dirge you eau mua hang hod hay dich vu cim khach hang vi phan hei xac Ethan tom tit lai nhang thong tin can thiet nhu mat hang da chqn, dia chi giao nhOn vi s6 phieu dat hang
2 Khach hang kiem tra lai cac thong tin vi kich (click) vao not (button) "dat hang", tir ban phim hay chuOt (mouse) dm may tinh, a giri thong tin tra vet cho doanh nghiep
3 Doanh nghiep nhOn vi Itru ft& thong tin dat hang deng thtri chuyen tiep thong tin thanh toan (s6 the tin dung, ngily dio han, chit the ) da &Km ma hoa den may chit (Server, thiet bi xi: 19 du Ho) caa Trung tam cung cep dich vu xir 19 the tren mang Internet Voi qua trinh ma h6a cac thong tin thanh Wan ciut khach hang duqc bao mat an Wan nhiim cheng gian lan Kong ale giao dich (ching han doanh nghiep se khong biet dugc thong tin ve the tin dung cita khkh hang)
4 Kin Trung tam Xfr 19 the tin clung nhon duk thong tin thanh town, se giii ma
thong tin \di xir 1y giao dich ding sau bac tuerng lira (FireWall) vi tech roi mang Internet, intim rave dich bao mot tuy 'et del cho cac giao dich thuang mai, dinh clang lai giao dich vi chuyen tiep thong tin thank tom den ngfin hang tea doanh nghiep (Acquirer) theo met dutmg day thue bao rieng (mOt dtrimg truyen s6 lieu rieng biet)
5 Ngan hang edit doanh nghiep giri thong diep dien tir yeu eau thanh tom (authorization request) den nein hang hoac cong ty cung cap the tin dung ctia khach hang (Issuer) Va to chat tai chinh nay se phin hei la long y hok tir chlai thanh town den hung tam xir 19 the tin dung hen mang Internet
6 Trung tam xir 19 the tin dung ten Internet se tiep tic chuyen tiep ithimg thong tin phan hei hen den doanh nghiep, vi thy theo do doanh nghiep thong bao cho khach hang dirge re la dun dat hang se threw thgc hien hay khong
Toan b6 thtri gian thirc hien met giao dich qua mang tir butrc I => 6 dirge xir 19 Kong khoang 15 - 20 giay
Trang 111.2 Tang quan ve the PHP Framework
Thanh ngif Framework khong con xa lu gi vela nhcmg ngutti da lam viec va
nghien ciru PHP Framework giting nhtr mot thu vien ma lenh duqc xay dtmg sin de cho nhimg ngutri lop trinh vien sau nay c6 the sir dung lai hoac phat trien
Hien nay, PHP la met nen nglit script rat phO bien ben rillimg 1Y do: firth hoot, cli c
sir dung,
a h9c, Nhung doi viec vitt ma PHP, hay bat cir neon ngit lap trinh nao khic, co the fret nen don dieu va limg eung DO la Ific ma chimg ta net! den PHP Framework
ttr?mg chung ding sau each thirc lam viec cua met PHP Framework duce ke den la Model — View — Controller (MVC) MVC la 1 mo hinh (kien trim) trong Iap trinh, cho phep Lich biet cac ma nghiep Ai (business logic) va giao dien (UI) thanh cac
phan rieng biet, dieu nay thing nghia yeti viec ta c6 the chinh sira chting 1 each rieng
le Trong cum tir MVC thi: Model (M) co the hieu la phan xir 15, cac thao tic ve nghiep
vu (business logic), View dirgc hieu la phan xir ly 16p giao (lien (presentation layer),
va Controller lam nhiem Ai 19c cac yeu eau dugc g9i fir ngtkri dung, c6 chile nang nhu met dinh tuyen (route) - dieu chinh, phan lutong cac yeu au de gel dung Model va View thich hqp Ve ca ban, MVC chia nhe qua trinh xir 13, dm met img dung, vi the nen chfing ta c6 the lam viec tren tirng thenh phan rieng le, trong khi nhung thanh phan khac se khong bi anh hieing toi Thtrc chat, dieu nay glop der chting ta lop trinh PHP nhanh hen va it phtic tap hon
PHP Framework hien nay kha day diz va dap img him het cac dieu kien can va dti cho viec xay dung met do an Nei toi PHP Framework thi nai bat nhat vin la: Zend Framework, CodeIgniter Framework, CakePHP Framework, Cac framework nay
cho ngtred sir dung chimg Ching han nhu cac helper gall) nguiri dung xay dung form, cac helper gitip ngtrai dimg sir dung nheng the HTML, the helper gifip ngutri dung validation cac form va chi dieu nay, thut to chi gap phan lam cho Framework do ter nen than thien va quen thuOc vOi nguori dung nhieu ham
1.3 Framework thuwng m0 dien tie clin c6 nhung gi?
Cac module can this& khi xay dung met Framework thircmg mai dien tir:
Module San phim: Module nay cho phep doanh nghiep chia thanh nhieu danh
muc san pham c6 the to thay dot theo nhu au vi du chia thanh san phim not that, san phim my nghe, san pham ding san vvv Trinh bay thong tin, hinh anti gia thank ' cita san pham theo clang e-catalog tich hey sin giO mua hang dien tie (e-shopping cart) phuc vu cho nhu cAu mua sim teen mang cua khitch hang
Trang 12Module Thank totin qua ming: Module nay di kern vei gio mua hang dien tit
(e-shopping cart), phvc vg cho nhu cau thanh tom qua mang cim khich hang
Module Quart ly Mack hang: Ltru gift thong tin ve qua trinh dot hang, mua
khi can thiet
Module Dick yin Hien thj thong tin, hinh anti ve cac dich vv cua doanh nghiep
ding lien lac khi can thief
Module Tin at Module cho phdp chia nho thenh nhieu log tin khic nhau vi dv
de y kiln cea khach hang khi vieng tham website
Module Qudng cbo trot aryls: Cho phep doanh nghiep guard)", cac banner, logo
cua cac 461 tac tren website minh, too ngu6n thu tit website
Ti?,: ich tim kilm: Bao gEm 2 chfrc nang tim kiem: Tint nhanh va tim nang cao
- Tim nhanh: cho phdp ngtteri xem tim kiem nhanh bat kir thong tin nio bong website th8ng qua thao tac don gun la nhap tit khera can tim va nhan enter de
ra ket qua
- Tim /fang cao: cho phep ngueri xem gi6i has khu vttc tim IciEm thong tin de kit qua hien thj ra chinh xac hon
Form lien kf trot tuyin: Cho phep Mach lien he veri doanh nghiep khi co nhu cau
1.4 Framework ala china to 0 lam dove nhirng gi?
- Quin ly sin pham:
xuat hien 6 nhieu nh6m khac nhau DEng thee, co the cai dot nhieu log sin phim trong quart tri de cac bleu mitt dif lieu phi hap vei dac thu timg log san pham, vi dv cac du lieu m6 to cho melt log thvc pham khong gi6ng veri
dit lieu cho melt hang dien tit KM nang nay dac biet quan trong trong
thucmg mai dien to khi website co nhieu mat hang khic nhau ma yin muiln lam n6i bat dac trong cita mEi loci hang
phdp melt sin pham dttqc hien thj theo nhting dac trung khac nhau, tai cac
Trang 13vi tri nOi dung khac nhau tren giao dien Tinh nang nay rat quan tang d6i veri viec trien khai cac mac tieu hay chuang trinh quing cao, khuyen mai colt tang web
+ He thting 'quan tri gia sin phim cho phdp quirt tri gia tham chien dash rieng cho ngubi bin (gia nhOp g6c), gia bin, gia khuyen mai Viec ho trq gii nhap gtic chi dinh cho ngtr?ri bin, cho phdp ngtreri bin co the tham khio gia ngay tren website de &Op quyet ?lath co chip nhan mire gia ma ngutri mua
de nghl khi mu6n mac ca mua hang hay khong
+ Ngoai ra he th6ng cbn thi'et ke cho phep cap nhat gia cho hang log sin pham cling lac, tinh nang nay dac biet quan trgng trong throng mai dien hi khi s6 lugng sin phim tren website len den hang nghin va viec cap nhat lin
lugt la lchong the
Quin 19 danh mac sin phA'rn:
+ He thifing hiS trq viec them, cop nhat vi x6a cac thong tin ve danh mac sin phAm Gap ban a ding trong viec quan 19 cac sin pham
Ho trq khach mua hang:
+ Xay long giao dien de nhin vi b6 tri cac sin pham hap 19 lim sao cho
khach hang co the de ding tim den sin phim ma mirth mong main He thOng h6 trq chirc nang tim kitm sin pham met each nhanh va chinh xac that
Quin 19 gib hang:
+ Gib hang dien tx cho phdp ngutd mua hang c6 the ding lac ?tat mua nhieu sin phim veri cac so Sang khac nhau Gib mua hang ltru tit cac sin phAm
ma ngutri mua da chgn, cho phdp nguen mua co the xem lai nhang mat hang minh da chgn dua vio gi6, them vio gib mat hang meri hoac be bin di sin pham nio do
+ De dat hang, khach hang chi can don gun kith chuOt vao sin phtim do, tat
ca cac thong tin ve sin pham bao g6m gia ca, mo ta, ma sin pham hay cac thong tin khac deu dugc hr gong km tnr trong gi6 mua hang Khi khach hang da chgn hang xong, hg chi can nhan nut that hien viec mua hang, phan mem gio mua hang se to dOng tinh toan tong sic) sin pham, thing gia tri tien thanh toan cling nhu cac chi phi van chuyen hay thue
+ Ngoli ra, chirc nang gi6 hing cda Framework con cho phop khkh hang chgn sin pham clua vao gin, de gi6 vao mOt ngan io va kith hang sau mOt
vai ngay quay trer lai mai quyet (firth mua hok thanh toan
- pat hang:
Trang 14+ Qua trinh dit hang th8ng qua gib hang dien tir cho phdp thu th#p day du the
thong tin cita nortri mua hoc them]) vien kern theo cac thong tin thanh than Citc th8ng tin nay trq gitip b0 ph#n ban hang trong qui trinh quart tri va zit
+ Hg thong ho trq viec giant gia danh rieng cho the nhem khach hang Ngoili
ra 4 thOng ho trq viec quan 19 the Coupon giam gia
- Quart 19 don hang:
+ Tinh nAng quart tri cho phep nguoi quan tri ket twit cat thOng ke ve mua ban tren cac dan hang, so luting sin pham da ban ra hoc cac thinh vier lien quan den dan hang
+ Ngoli ra, ngtrai quan tri co the cep nigit tinh tang zit ly dan hang kern theo the ghi chit xir 19 dan hang Trong throng hap co nhieu ngutri ban hang, quart tri ban hang co the tiny than chuyen dan hang den cho ngtreri bin hang pha hgp
+ Doi veri phia ngtrai sir (twig, khi dang ky va clang nh#p tai khoin thanh vien,
co the theo del thong ke cac dan hang cua minh va trong trtremg hap dirge quart tri vien kich hoot, co the theo dOi lich sir tinh tang tar 19 dan hang Thanh toan:
+ Gib hang dien to cho phep tech hap yea hau het cat cOng thanh toan dien tir phO bien hien nay nhtr Paypal.com , Authorize.net , Onepay.vn, Nganluong.vn tir do hb trq nh#n thanh toan bang the tin dung hoc the
ghi ng ngay tit website Ket qua thanh toan dirge phan anh ngay 1#p tat vao thong tin don hang khi dOt hang
Quin 19 ngtrai dung:
+ Website la rat quan tang ho trq nguOi bin hang trong viec xay dung va then
khai cac chuong trinh bin hang, tham do Uri truemg va xac tier khuyen mai
+ H6 trg cac tinh nAng quan tri thong tin thanh vien, khach hang, cho phdp nguai quan tri quart ly danh mac, ket xuat the thong tin va theo d6i the don hang lien quan den cac thanh vien Ngoai ra, ban than cac thanh vien cling
co the clang nh#p de chinh sera cac thong tin caa minh va xem xet lich sir mua hang
Sao luu / Phut hOi:
Trang 15+ Sao luu cho phep nguoi quan tri he thtng co the tao ban sao (backup) town b0 ca so du lieu hoc timg bang ca so da lieu Diing died sao chop ra the thiet bj luu
+ Kh8i phue cho phep nguoi qua tri he thong co the khoi phuc tir nguem du
Bao met:
+ Framework cart cluing ta se nga chart mot each tai da cac each that VII cong nhtr: SQL injection, CRSF, XSS, spam
Marketing, SEO, quan he khach hang:
+ Ngtrai qua tri c6 the sir dung chile nang nay de girl cac thong tin khuyen
catalouge, den khach hang Qua 66, thac day va dua khach hag den guy& dinh thut hien viec mua san phAm cling nhir tang etrang mti quan he gicra cong ty vai khach hang
1.5 Loi ich tir viec illy thing Framework Huron mai their' tir
Co rat nhieu ly do lchac nhau de the lop trinh vien sir dung PHP framework, nhung mot trong nhung 19 do chinh van 11 kha nag giap cac lap trinh vien tag ttc qua trinh phat then Ong dung Viec sir dung 10 the ma lenh gieng nhau trong nhieu ling dung se glair cac ban tiet kiem &we thin gian va cong sac mot each clang ke MOt framework se sung cep sin cac module nen tang can thiet de xay dyng mot ling dung,
vi the, cac lap trinh vien co the ten dung duge thai gian de phat trim the ling dyng thyt te, hen la mat thai gian de xay chmg lai nen tang tren moi project
Sr On dinh la mot 19 do lem dti vai the lap trinh vien dang sir dung Framework Tirth den gian la mat diem mph tha PHP, d6 la 19 do tai sao lai co nhieu ngutri thich sir dung no, nhung clang thei do cling la diem yeu etia no PHP thi kha de hoc vi sfr dung, dee biet la dti vai nhung nguiri mai lam quen yeti lop trinh, tuy nhien, ha co the thtremg xuye'n viet ma mot each khong khoa hac va them chi khong he nhen thire duce dieu nay, yeti PHP, trong nhieu trtrang hap the (mg dung van se lam viec dug; nhung
khai thic
HA'u het cac PHP framework deu co sin rat nhieu thanh phAn ma rang (extention), va cling et rat nhieu framework khac nhau de chting ta lya chem Chimg ta
can nhic ky tnrac khi quyet dinh sir dung hoc ty phat then mat framework cho minh hay khong, nen ty det cau hal cho chinh minh la: NO co tiet kiem duce cho ban thai
Trang 16gian va cong sac hay kh8ng ? CO glop arng clang ban hoat dOng Mt hun thong ? Co di
Trang 17PHAN 2 TONG QUAN VE DESIGN PARTTERN VA MO HINH MVC
CO nhieu each khac nhau de xay dvng vi thiet ke mOt Framework Trong khoa luan nay, chung ta se xay clang mOt Framework de sit dvng va de hieu
Trong phat trien phan mem hien dai, kien true tong the coa dir in dang mOt vai fro quan tang, dac biet yeti bO khung (framework) va mau thiet ke (design pattern) 2.1 Man thiet ice (Design Patterns)
Pattern me ti mOt giai phap chung doi voi mOt van de nao do trong thiet ke thuing dugc "lap lai" trong nhieu dv an Nei mOt each khac, mOt pattern ce the dugc xem nhu meta "khuon mice co sin ap dung dugc cho nhieu tinh hireling khac nhau de
giai guy& mOt van de cu the Trong bat kt he thOng phan mem nao chimg ta cling co the bit gap cac van de lap lai
2.1.1 Nic Sim cluing
Pattern dugc hieu theo nghia tai sit dung 9 tiring han la ma lenh Pattern cho
phep cac nha thiet ke co the cling ngOi lai vol nhau va cling giai quyet mOt van de nao
di ma khong phai mat nhieu thin gian tranh cai Trong rat nhieu fruiting hap, dv an pilaff mem that bii la do cac nha phat trien kh8ng co dirge sir hieu biet chung trong cac van de ve kien talc phan mem Ngoai ra, pattern cling cung cap nhitng thuat ng>r va khai niem chung trong thiet ke Noi mOt each don gian, khi de cap den mOt pattern nao day, bat k9 ai biet pattern do deu co the nhanh ching hinh dung ra "bfrc tranh" cfm giai phap Va cuei cling , neu dp clang pattern hieu qua thi viec bao tri phan mem cling dugc lien hanh thuan lyi han, nim bit kien trim he thong nhanh han
Pattern ha try tai sit clang kien tnic va mo hinh thiet ke phan mem theo quy mo lin Can phan biet design pattern vai framework Framework hti try tai sir clang mo hinh thiet ke va ma nguon 6 mire chi tiet han Trong khi d6, design pattern dirge van dvng o mule ding quit han, giup cac nha phat then hinh dung va ghi nhan cac cAu frac tinh va dOng sung nhu quan he tircmg tic gifts cac giai phap trong qua trinh thiet ke ling dvng dei yeti mgt chuyen khu rieng biet
Pattern da tuang thick Pattern khong phv thuOc vio ng8n ngfr lap trinh
2.1.2 Ph& logi Pattern
Pattern dirge phan loaf ra lam 3 Whom chinh sau day:
- Nhom eau thanh (Creational Pattern): Gem Factory, Abstract Factory, Singleton, Prototype, Builder Lien quan den qua trinh kited Mo doi Wang cu the tir mOt dinh nghia triru tugng (abstract class, interface)
Trang 18- Nham cau trim tinh (Structural Pattern): Gam Proxy, Adapter, Wrapper,
- Nhern trong tic dOng (Behavioral Pattern): Gram Observer, State, Command, Iterator M6 ta each thirc de de 16p hale doi tugng co the giao titp yeti nhau
- Model — View — Controller (MVC)
- Registry
- Singleton
a Model — View — Controller (MVC):
ma hinh thiet ke dirge sir dung trong ky thuat phan mem NO gulp cho cac nhi phat trien Lich img dung dm hg ra 3 thanh phan khic nhau Model, View vi Controller M8i thanh phan co met nhiem vu rieng biet va do'c lap yr% the thinh phan khk
b Singleton
- Khi phat trien met img dung web, co mOt van de khien chimg ta phai suy nghi,
46 Ii lam sao de co met 16p (class) chi co chinh xk mot the hien (instance), the hien de e6 the truy cap tir bat cir dim trong pham vi ling dung vi ddc biet
cita bien toan cue, vi du nhu khi chting ta main kiem tra met each chi ti'et
cue la no co the dirge sir dung 6 bat 14 dau trong chuong trinh, viec 46 se
ham da dirge goi va chimg ta rat kh6 kiem sok dirge chuyen gi dang xay ra yeti bien town cue
la mOt design pattern dirge sir dung khi plui toren trong ck Framework NO dua ra each thi'et ke de dim bao ring chi tao ra khong qua mOt the hien ctia mOt lerp va the hien nay co the throe truy cop tir bit cir dau N6 thuong dirge sir
c Registry
Registry ban co the them dir lieu (ca gia tri va dai tugng) vao cdi gi6, va truy
Trang 19xuat chang khi duqc you ciu tir cac phin lduic dm met img dung Khi moi du lieu nhu the drat dieu khien Uri met ea tuqng Registry duy nhilt (single), no lam cho vies truyen alit lieu va den tuctg xung quanh meting dung dan gian
tu (individual) vao met phuang that kWh tao hay cid eat Trong met hinh that (fashion) tuang ta, Registry c6 the thay the cho nhu cau phai c6 tat ca 461 ttrqng ban can tray cap totm cut ten ma thii ttrqng 46 hoat Ong nhu met Singleton
+ Chinh Registry vira c6 the duqc truyen vao (passed around) nhu met tham s6 vira c6 the duqc chuyen thanh Singleton de cho phep truy cop town cut to5i no tir bit cir nai eau trong ang dung O dau n6 duqc sir dung de thay the nhieu Singleton, n6 c6 the thay the nhu cau phai biet ten moi 16p rieng dieu lim cho viec sat clung lai cat 16p trong cac img dung khk de ding han + Registry pattern cho phep luu tre va truy xuat de lieu Cac dei tucmg an phai truy cap tok cat tap trung trong met dei ttrqng duy nhat Met lOp
Trong PHP 5.1, chi mg ta c6 the sit dung cat phuang that ma thuat (magic method) de the hien cat phuang thirc tren met cach dang
Mo hinh ket luyp Singleton & Registry
Thay vi chimg ta phai truyen Registry nhu met tham se kb% tao thi chGng ta
se bien 46i tucng Registry trer thinh met dei ham Singleton Su bien depi nay
2.2 Mt) hinh Singleton vi Registry
2.2.1 Singleton
De hieu re han ve Singleton, chang ta se Wang tutng met lap hgc co Mn sinh
duti day se the hien cong viec tren theo citch thong thutmg
<?php if ( ! defined('BASE_PATH')) exit('No direct script access allowed');
/**
* @framework: PHP5 - ECOMMERCE FRAMEWORK
*
cuongnc.it659@gmail.com - Nguyen Chi CuOng
* @description: Script m6 ta ye Singleton Design pattern
Trang 20*/
class Teacher
{
private $_name;
static $ number of instances = 0;
public function construct() {
$this-> name = 'Nguyen Bao Trung';
$this-> name = $name;
$this-> teacher = new Teacher();
}
public function ShoutYourName()
$this-> teacher->TakeAttendance($this-> name);
Trang 21va phuong tithe de giao vien ghi ten vao so Ngoai ra cling c6 mOt bien kieu static
$ number_of instances de dem s6 Ian the hien dm lap Teacher
Lap Student c6 hai thu6c tinh — ten dm sinh vien va ten giao vien elm sinh vien Lap nay cling c6 hai phuong that public — eau ter kheii tao va phucmg that ShoutYourName() de sinh vien diem dank
Teacher cling duct khen tao Nei mot cach khic, tat ca sinh vien trong lap nay deu ca mOt giao vien cua rieng minh Viet tao ra nhieu d6i urging (Teacher) la khong can thiet khi de thuc hien cling mOt tong viOc (diem danh)
Hinh 2.1 Diam danh theo ccich thong tinning
//INPUT
$trung = new Student('Trung');
$cuong = new Student('Cuding );
Shia/ = new Student('HAP);
$dung = new Student('Dung');
Trang 22De giii quyet vin de nay, ching ta se tien hinh sir dung Singleton Chung ta sus din don mA o tren nhu sau:
- Them mot thuOc tinh kieu tinh (static) $_instance de the hien lop Teacher Phuong that kheri tvo dirqc thay d6i tir public thanh private, de ngin chin sv truy cip tir ngoai 16p
- Khai bao them met phucmg thfrc rieng to (private) _clone() ghi de phucmg that ma thuit (magic method) _clone() dm PHP, tranh viec &Ai tirimg bi nhin ban (clone)
- Khai bao them met phuang thirc kieu firth (static) getInstance() Phuong thirc nay see kiem tra the hien cua 16p (class) co hay khong, neu khong co no se tvo
ra mot 16p (class) vi luu tra no trong hien filth (statict) $_instance Cu6i ding tra ve bien $_instance khi co you au
- Lop (class) Student se tham chieu den the hien (instance) cis 16p (class) Teacher bang cash goi phucmg thirc TeachergetInstance()
class Teacher
private $_name;
static $_instance;
static $ number of instances = 0;
private function construct()
$this-> name = 'Nguy4n BA° Trung';
self::$ number _ of instances ++;
public static function getInstance()
if(!(self::$_instance instanceof self))
self::$_instance new self();
}
return self::$instance;
}
Trang 23public function TakeAttendance($studentName)
$this-> name = $name;
$this-> teacher = Teacher::getInstance();
public function ShoutYourName()
$this-> teacher->TakeAttendance($this-> name);
}
}
Val doze ma nay, nh& viec sir clung Singleton pattern, d6i Urgng Teacher se dirge Idled tao melt Ian duy that va tat ca S sinh vien trong lap se deu diem danh duy nhat cho melt giao vien
Hinh 2.2 Die* danh theo mó hinh Singleton
Trang 24//INPUT
$trung = new Student('Trung');
$cuong = new Student('CuOng');
$hai = new Student('Hai');
$dung = new Student('Wing.);
class My_Registry
private $store = array();
public function construct()
Trang 25public function get($1abel)
Ta thtrc thi lap My_Registry dun gian nhu sau:
//Khei tao 16p My_Registry
$registry = new My_Registry();
//Khei tao doi tugng ma chUng to can truy cap toan cuc tei(Settings)
$settings = new Settings();
$db = new DB Abstraction MYSQL1($registry);
Lop Cu set da lieu:
class DB Abstraction MYSQLI
{
private $settings = null;
public function construct($registry)
//puyt qua doi trong settings era duct luu trO trong Registry
Trang 26$this->settings = $registry-> settings;
public function connect()
2.2.3 MO kink kit hpp Singleton & Registry
MOt (lieu thuong they trong cac Design patterns la viec kit hop hai hay nhieu
mo hinh de mang 1a1 cac giai phap hftu ich ham Thay vi phai truyen Registry nhu met tham só kheri tao, chting ta se hien deii ttrong Registry thanh mot doi Wong Singleton Viec thay dei rat don gian, chimg ta them met phacmg thirc tinh (static) getInstanceo va met bien kieu tinh (static) $_instance luu gift the hien dm d6i Wong
static public function getInstance()
//Khong can truyen Registry nhu met tham so
$db = new DB Abstraction MYSQLI();
Trang 27Str thay dig trong lep Co sa dtt liOu ding Hit dun gian:
class DB Abstraction MYSQLI
{
private $settings = null;
//LAy thA hiGn cua Registry
$registry = My_Registry::getInstance();
$this->settings = $registry->get('settings');
}
Trang 282.3 MO HIM MVC
2.3.1 Lich sii
Vio nhung nam 70 cos the 14 20, tai pang thi nghiem Xerox PARC 6 Palo Alto, strra dolt coo giao (lien dO hga (Graphical User Interface) va lop trinh huang doi tugng (Object Oriented Programming) da cho phdp lap trinh vien lam viec yen nhffmg thinh phan d6 hga War nlffing doi tugng dO hga c6 thu8c tinh va phucmg that rieng cita n6 Kh8ng dimg Igi 6 d6, nhimg nha nghien ciru 6 Xerox PARC con di xa hen khi cho ra d?ri cai ggi la lden frac MVC (via tit ciut Model — View - Controller)
MVC dugc phat minh tai Xerox PARC vim nhang Elam 70, beri TrygveReenskaug MVC Ian dau tien xutit hien ding khai la trong Smalltalk — 80 Sau
de trong 'nett theft gian dai hAu nhu khong c6 thong tin nao ve MVC, ngay ca trong tai lieu Smalltalk - 80 Ck giAy ter quan trong dau tien dtrgc cling ba tren MVC la "A Cookbook for Using the Model — View — Controller User Interface Paradigm in Smalltalk - 80", beti Glenn Krasner vi Stephen Pope, xuit ban trong thang 8/9 ram 1988
2.3.2 Kiin nee nth hinh MVC
do hog View chinh la the hien trgc quan curt model, hay not each khac chinh la giao dien ciut din tugng do hog Controller dieu khien viec tuang tic gitla dai tugng do hog
va ngu&i sir citing cling thy nhcmg dOi tugng khac
HInh 2.3 Mo hinh MVC don gian
tugng do hog, ne se ft:mg tac thong qua Controller ctia don tugng dO hog Controller se thgc hien viec thay d6i tren Model Khi co bit ky sg thay del nao xay ra 6 Model, n6
Trang 29dugc th8ng diep tfr Model, View se cap nhat lai the hien cila mirth, dim bio rang n6 Mon la the hien truc quan chinh xic dm Model Con Controller, khi nhan dugc thong diep tir Model, se c6 Ethan Prong tic can this& phin h6i 1a1 ngtrai sir dung hoac cac d6i tucyng khic
I Controller I HTTP Request
Ilinh 2.4 Duirng truy4n tren ma hinh MVC
Lay vi du trong Thuong m0 dien tir, khi khach hang them san pham vao gin hang bing cich an nut Them vio gio hang ngoii View - Giao dien ngtreri dung Tiep d6 tang Controller se xir ly yeu eau nay va Wong tic wen tang Model de them sin pham vio gin hang
va gia tri sin phim trong gin hang
2.3.3 Deic diem ctia me kink MVC
a So sinh ma hinh MVC yeti ma Mall 3 lap
MVC mtblecture
Hinh- 2.5 Sv khic nhau gizia MVC va 3 — layers
Trang 30Trong m6 hinh 3 lop, qua trInh di theo chi'eu dye, bat dau tir PL, sang DL, va tir
DL, chyy ngtroc lai BL rOi quay ra lei PL
Trong m8 hinh MVC nguyen thug, dir lieu ducrc nh#n bed View, View se chuyen cho Controller cap nhat vao Model, r6i sau do da lieu trong Model se dtrqc dua lai cho View ma khong thong qua Controller, do v#y luimg xir 19 nay co hinh tarn giac
b Liu diem vi lgi ich
Lqi ich quan trong !that dm me hinh MVC la gitip cho img clung de bao tri,
module hod cac chat nang va doge xay dung nhanh cheng MVC tach Mc thc vu cua
ling dung thinh cac phan rieng le Model, View, Controller gulp cho viec xay ding cac
ling dung nhc nhang hcm, de dang them cac tinh nang meri va cac tinh nang ea co the
Trang 31a clang thay d6i MVC cho phep cac nha phat trier va cac nhi thiet ke c6 the lam vi'ec Bong thtri veri nhau MVC cho phep thay doi trong mat phan Cmg dung ma kh8ng anh huemg den cac thanh phan khic
Men trim MVC da tach biet (decoupling) sur phi thuac- gifts cac thanh phan trong mat dal Mang da hoa, lam tang tinh firth ding (flexibility) va tai sir dung (reusebility)
each thay dal thanh phan View cda n6 trong khi each that luu trft (Model) cling nhu xti 19, (Controller) kh8ng he thay d6i Ttrcmg tu, to el-mg co the thay dai each thirc luu frit (Model) hoac xfx 19 (Controller) dm du tut:mg da hoa ma cac thank phan con lai Van gift nguyen
Nh6 nhftng dac diem hnu ich nhtr vay ma kien frac MVC da duqc img dung de
Ay dung rat nhieu cac PHP Framework va cat thu vien da hoa khac nhau Tieu bleu
la ba thu vien do hoa cua nein fly/ lap trinh huting dai tutyng SmallTalk (cling do
c Nhtriac diem
trong qua trinh phat trier Tin then gian Ming chuyen der lieu gifta cac thanh phan
Trang 32PHAN 3 CAU TRUC CiJA FRAMEWORK
Sau khi tim hieu duqc cac mau thi6t ke ve mo hinh MVC ar phan tren, cluing UM
se trinh bay ve cau trtic dm Framework ma cluing ten xay dung Nei dung chinh cira phial nay bao gem:
Cau frac thu moc Framework;
- Deng chay der lieu trong Framework;
3.1 Chu true thu myc Framework
vien, cac top tin duqc lop trinh theo cau frac MVC
hinh
he thong
vien Ur dinh ngliia
z nguon
dm Framework
vien
to dinh nglifa
Trang 33+ views - Chira cac tap tin giao dien cila
he thAng
hinh khi cai dat
phvc Ai cho viec cai dat
vv cho viec cai dat
dien khi cai dat
thAng
controller khi cai dat
Framework
&roc lay dung
duge xay dung
core.php, load.php, registry.php,
• "
thAng
yeu cAu tit phia ngueri dling va chuyen yeu cAu nay cho he thAng xfr ly
Bang 3.1 C u trzic tint myc can heth ng
Trang 34array('beer', 'wine', 'snacks')
5 Hew: Der liOu dirge chuyen qua View a hien thi cho ngtrai dung
Trong thge te, d6i khi ta can xen vio the but trong so de teen Ching hbn, twee khi met controller duct ggi, ta co thO mutin Itru log )(wing top tin trong he thin Chung ta sir dung co the hook cho phep ta owe hiOn viec nay De kich hoot hook, ta can thay dOi gia tri eita hien $config['enable_hooks'] trong tip tin
function: ten ham/phucmg dare se dirge ggi;
filename: ten tap tin china 16p/hAm d6;
Trang 35filepath: duang din den tap tin hook Neu tap tin nam trong thu muc
application/hooks, ta chi can det gia tri nay bang hooks Neu tap tin nam trong
thu Mix application/hooks/utilities, ta (Jet gia tri nay bang hooks/utilities.Luu
yr, Ichong co clau / o cuoi
params: cac tham sr.!) duce truyen vao cho ham
3.3 URL
Theo mac dinh, cau frac URL cim Framework dtrqc thiet ke dva vao cac segment
nghia, de ghi nher vit than thien v6i cac 130 may tim kiem URL trong co
domain.com/index.php/controller/method/param/
Trong de:
- Nhu vey, URI domain.com/index.php/product/view/1 se mangy nghia: Gqi
truyen van bang 1
a Dinh tuyen URI (URI Routing)
thien vai cac bq may tim kiem bang URI
domain.com/index.php/product/view/apple -ipad -1 Framework cila chang ta
cho phep ta c6 the thay din ca the xir 19 URL mac dinh th8ng qua chi= nang dinh
huang URI bang cach thiet lip cac quy luat trong tap tin
appl i cation/con f ig /routes php Tip tin nay chin ming $ route , veri khoa la
It* tnrac c6 dO uu tien cao han quy luat sau Framework cho phep sir dung cac ky to dai dien (wildcard) de thay the, trong do co hai ky to dai dien duct quy dinh sin:
Vi du:
$route[`product/view/(:num)'] = "product/view/$1";
la gia tri kieu s6
$route['product/:any'] = "product/find_product";
Trang 36nghia: tat ca cac yeu eau bat du bing product se g9i den ham find_product
Ta cfmg c6 the sir dung bieu thirc chinh quy (Regular Expression) de thiet lop quy luOt Chang han:
$route['product/([a-z] +)/(\d+)'] = "Wid_S2";
b Loni b6 chn8i indemphp trong URL
lieu Trong Framework nay, viec khai bao cac lop Model danh cho met thurc the nao
do la khong can thiet, vi trong Controller dm that the do, ta c6 the goi den thu vien database de that hien cac thao tic v6i co so dUr
Met 16p Model chuan trong Framework co cau truc nhu sau:
<?php if ( ! defined(IBASE_PATH')) exit('No direct script access allowed');
class Test model extends EC Model
public function construct() {
parent:: construct();
}
public function Example()
1
Trang 37/* End of file test.php */
/* Location:./application/models/test.php */
Khi khai bao met 16p Model, ta can loan theo mot s6 guy tic:
- Ten l6p duqc viet hoa cha diu tien, (than con lai viet thutmg Vi du: User model, Blog_model, Article_model
- Ten tap tin duqc dat nhu ten 16p, va duqc (fat trong du muc
application/models/ Cac thu rime c6 the duqc luu long vac, nhau de th'uan
Trong de, model_name la ten dm 16p Model Neu lerp Model duqc luu trong met
nay, ta sir dung doan mA sau:
$this->load->model('model name', 'ModelName');
Khi do, de sir dung cac phucmg thirc cim lop Model, ta goi:
$this->ModelName->method();
View la tihrmg tap tin china mA HTML duqc xay dung nham the hien dir lieu trong Model thanh cac giao dien tuong tac yeti ngtrai clang View do the 11 met trang web hoan chinh, hay chi la met phan cua trang web (header, footer, sidebar ) Nei dung cim tap tin View, ngoiii ma HTML con co the chim ma PHP View khong bao gib duqc gqi true tiep ma phai thong qua controller
De sir dung view trong controller, ta sir dung doan ma sau:
Trang 38$this->load->view('viewname', $data);
trong View Cling giOng nhu model, ta co the Wu View trong cac thumuc de tien cho viecquintfr
Khisticlung,chicinkhaibioduengdanttrangdOidendnrimycchfraView.Vi dytkptinheader.owdugcluutrongdurmucapplicatiee/views/frent_eod.Be hienthiViewnay,tasirdungdoanmAsau:
class Demo extends EC Controller
public function construct()
Trang 39employee_detail.php:
<p>Name: <?php echo $name ?></p>
<p>Email: <?php echo $email ?></p>
<p>Age: <?php echo $age ?></p>
Ta cfmg c6 the su dung cac cau true dieu ktnen (if, else, switch case ), lap (for, while, do while ) be'n trong View de hien MI du lieu Vi du sau se hien thi danh sach cac nhan vien:
Framework con cho phdp to co the thy vE nOi dung cfm View thay vi mitt tut
$string = $this->load->view('myfile', ", true);
3.6 Controller
Controller la nhang hip &mg vai tro trung gian giaa View va Model Controller nhan cac yen cau tir phia ngueri clang, kiem tra cluing truerc khi chuyen qua cho Model
Trang 40Sau khi Model xis IST you eau va tra da lieu ve, Controller chuyen sang View de hien thi der lieu cho ngtrtri dung Trong Framework nay, cac lop Controller &Km gin vim segment thu nhAt trong throng truy'en URL Mot 16p Controller chttan trong Framework c6 Mau:
<?php if ( ! defined('BASE_PATH')) exit('No direct script access allowed');
/**
* @framework: PHPS - ECOMMERCE FRAMEWORK
*
-cuongnc.it659@gmail.com - NguyAn Chi CuOng
*
class Demo extends EC Controller
public function construct() {
Blog, Article
- Ten tip tin dirge dat nhu ten 16p, va &gm dat trong thu moc
application/controllers/ Cac thu nom c6 the duqc luu long vie nhau de