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

Xây dựng Framework thương mại điện tử.PDF

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

PHAN 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 1
- 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 2
1.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
trong nhang chi
tiet
nhe nhat trong lap trinh. Nhim giant tai th?ri gian van dung
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 3
Module 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
hang, hem don thanh toar

vvv, giep khaeh hang va doanh nghiep thuon tien era
ciru
khi can thiet.
Module Dick yin
Hien thj thong tin, hinh anti ve cac dich vv cua doanh nghiep
tren website. Moe djch vv c6 1 form you cau djch vv di kern, cho phep khich hang
a
ding lien lac khi can thief.
Module Tin at
Module cho phdp chia nho thenh nhieu log tin khic nhau vi dv
tin trong nark, tin quac
te,
tin tiro cling nghe, tin nOi b0 wv.
Module Tito them db
,

y kiln:
Doanh nghiep c6 the dtra ra nhang cau h6i de thihn
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.
Tick kip bj dlm ckuyJn saw
Bao gom b0 dem
s6
ngueri da truy cap, dang truy
cap website, dem
s6 lan
da dugc xem cho ten sin pham.
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:
+ Dac truing net
b8t
bong tinh nang quan tri san pham la ha trq linh hog trong
t6

chin ahem sin phim, cho phep melt sin phim c6 the dirge sao chap va
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.
+ Ngoli ra
he
thong hE trq kha nang dien khien cac thuOc tinh hien thi cho
phdp melt sin pham dttqc hien thj theo nhting dac trung khac nhau, tai cac
Trang 4
vi 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 l
o
ng 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 si
c
) 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 5
+
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
ly
dan hang.
Van chuyen:
+
Hg thOng h6 trq viec quirt ly cac hinh that in chuyen. Ban co the them
vao cac hinh that van chuyen va 4p nh#t gia cua mOi hinh that khi an.
-
Khuyen mai:
+
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 6
+
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
lieu da sao luu trutc da (restore), toan b0 ca sfr
du lieu
hoc phue hti tang
bang ca se
du
lieu.
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
vo tinh ha
co
the tao ra cac 1& hOng bao met lan trong ma lenh elm minh, va bi hacker
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
them chi con et the
to
viet rieng cho minh mot framework. Tuy nhien, chang ta nen
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 7
gian va cong sac hay kh8ng ? CO glop arng clang ban hoat dOng Mt hun thong ? Co di
thin &nye sv
On
dinh cho frng clang khong ?
Trang 8
PHAN 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 me
t
a "khuon mi
c
e co sin ap dung dugc cho nhieu tinh hire
l
ing 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 9
- Nham cau trim tinh (Structural Pattern): Gam Proxy, Adapter, Wrapper,
Bridge, Facade, Flyweight, Visitor Lien quan den

van
de lam the nao de the
16p vi did Wong keit hop veld nhau tao thanh the
cAu
true len lion.
- 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.
2.1.3.
Cdc mtia miet ki thaw sir (long trong Framework
- Model — View — Controller (MVC).
- Registry.
-
Singleton.
a.
Model

View

Controller (MVC):
Ma hinh MVC (Model - View - Controller) la mOt kien true phan
mem
hay
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
chang ta khong mulin sir dung bien town cue (global variable) vi
mOt s6
bat lqi
cita bien toan cue, vi du nhu khi chting ta main kiem tra met each chi ti'et
chuong trinh va
muon
biet bien town cue doge sir dung the nao thi chitng ta se
phai xem xet chi
tiet
tirng clang code trong m8i file bed ddc diem dm bien tom
cue la no co the dirge sir dung 6 bat 14 dau trong chuong trinh, viec 46 se
khien chfing ta
mat rat
nhieu died gian. Han nal, vide sir dung bien than cue
rat nguy hiem vi gia tri cua ne c6 the dirge thay dOi 6 bit cir ham
nao m8i
khi
ham da dirge goi va chimg ta rat kh6 kiem sok dirge chuyen gi dang xay ra
yeti bien town cue.
DO la hie ma Singleton co the giup ta giai quyet nhimg
van
de tren. Singleton
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
dung cho the dad tugng nhu eau hinh
he
thOng, ket

not co
so dit lieu
c. Registry
-
La mOt trong nhirng
pattern eat
him ich. Ta coi n6 nhu melt chiec gi6; sir dung
Registry ban co the them dir lieu (ca gia tri va dai tugng) vao cdi gi6, va truy
Trang
10
xuat 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
han rat nhieu so voi viec truyen tit tit nhemg der lieu ay nhu met tham
s6
rieng
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
Registry thong thtrtmg bao gem ben phuang that: ghi
du
lieu (set), truy
xuat
ear
lieu (get), huji (unset), kiem tra sa ton tai cua 46i arcing (isset).
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
rat dan gian, chin ta chi
can
them met phuang that Singleton() kieu static.
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
vien va ben sinh vien nay se phai diem dank de giao vien ghi ten vac,
s6.
Doan code
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
*


@author:


- Nguyen 136o Trung

- Nguyen Chi CuOng.
*
@description: Script m6 ta
ye
Singleton Design pattern.
Trang 11
*/
class Teacher
{
private $_name;
static $ number of instances = 0;
public function construct()
{
$this-> name = 'Nguyen Bao Trung';
self::$numberofinstances ++;
echo
,
st,
gido vien:'. self::$ number of instances.
1
<br/>';
}
public function TakeAttendance($studentName)
{

echo $studentName.
'co
mdt.<br/>';
1
}
class Student
private $ name;
private $_teacher;
public function construct($name)
{
$this-> name = $name;
$this-> teacher = new Teacher();
}
public function ShoutYourName()
$this-> teacher->TakeAttendance($this-> name);
}
}
/* End of file singleton.php */
/* Location:.//D/root/test/singleton.php */
Doan code a tren khai IA° hai lop (class): Teacher vA Student. Lop Teacher co
melt bien kieu rieng to (private) S_name vi hai phircrng thac public — cAu tai kheri tao
Trang 12
va 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.
Vai doan ma nay, m8i khi
,
mOt &Si ttrong Student duct tao ra thi mOt d6i Wong

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');
$trung->ShoutYourName();
$cuong->ShoutYourName();
$hai->ShoutYourName();
$dung->ShoutYourName();
//OUTPUT
SO
giAo
vier):
1
SO
giAo
vien:
2
SO
giAo
vien:
3
SO
giAo

vien:
4
Trung co mot.
Cueing co mAt.
Hai co mat.
[King co mAt.
Trang 13
De 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 ++;
echo

'
S6

giao
self::$ number of instances.'<brW;
}
vien:'.
private function
_
clone()
{
public static function getInstance()
if(!(self::$_instance instanceof self))
self::$_instance

new self();
}
return self::$instance;
}
Trang 14
public function TakeAttendance($studentName)
echo $studentName. '

co
m*t.<br/>';
}
}
class Student
private $_name;
private $ teacher;
public function

construct($name)
{
$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 15
//INPUT
$trung = new Student('Trung');
$cuong = new Student('CuOng');
$hai = new Student('Hai');
$dung = new Student('Wing.);
$trung->ShoutYourName();
$cuong->ShoutYourName();
Shai->ShoutYourName();

$dung->ShoutYourName();
//OUTPUT
Só giao vien: 1
Trung
co
mat.
Curing
co
mat.
Hai c6 mat.
Dung
co
mat.
2.2.2.
Registry
Nhu da neu or tre
.
n, mOt lop Registry thtrimg c6 bon phtrcmg thirc: ghi (set), truy
xuat (get), huS
,
(unset), kiem tra ton tai (isset). Ta se sir dung cac phucmg thirc ma thuat
(magic method) dm PHP5 de the hien 16p Registry nay.
class My_Registry
private $store = array();
public function

construct()
}
public function


set($1abel, $object)
if(!isset($this->store[flabel]))
{
$this->store[$label] = $object;
public function

unset($1abel)
if(isset($this->store[$label]))
unset($this->store[flabel]);
Trang 16
}
public function get($1abel)
if(isset($this->store[$labell))
return $this->store($1abel];
return false;
public function

isset($label)
if(isset($this->store[$label]))
{
return true;
return false;
}
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();
$settings->import(Vapp/settings.ini');

//Bang k2 cho bien $settings thanh toan
$registry->settings = $settings;
//Ket not den Co so do lieu bang cach duyet bien $settings da
dugc luu trong My_Registry
$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 17
$this->settings = $registry-> settings;
public function connect()
$conn = mysgli_connect(
$this->settings->getrdb. host'),
$this->settings->getrdb. username'),
$this->settings->getrdb. password'),
$this->settings->get('db. database')
);
return $conn;
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

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()
if(self::$instance == null)
self::$_instance =
new
My_Registry();
}
return self::$instance;
}
De thut thi lap My_Registry, bay gib chting ta sir dung phuong thtic Singleton
cue no:
//Lay the hien clia 16p My_Registry
su
dung phuang thac
Singleton.
$registry = My_Registry::getInstance();
$settings = new Settings();
$settings->import('iapp/settings.ini');
$registry->settings = $settings;
//Khong can truyen Registry nhu met tham
so.
$db = new DB Abstraction MYSQLI();
Trang 18
Str thay dig trong lep Co sa dtt liOu ding Hit dun gian:
class DB Abstraction MYSQLI
{
private $settings = null;

public function
_
construct()
//LAy
thA hiGn cua Registry
$registry = My_Registry::getInstance();
$this->settings = $registry->get('settings');
}
Trang 19
2.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
MVC via tit
cat chit cal

(au
dm Models, Views, Controllers.
Model c6 tech nhiem del vdi toan b8
du
lieu ding nhu gang thai cua dad tugng
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.
Khi nguai sir dung hok nhimg doi tugng khk
can
thay den gang thai cua deli
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
se
phat thong diep (broadcast message) thong bao cho View va Cotroller biet. Nhlan
Trang 20
dugc 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

update(request data)

0


show()

I
S

44—
HTTP Response
getData0
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.
Tucmg ty,
du lieu
trong gin hang se duce chuyen tiep ngugc lai cho View - Giao
dien ngutri climg thong qua tang Controller, de hien thi cho nguiri dfing biet

lugng
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 21
Bu tn.?
L
)at:a
Pre yenta ton
cor-rol'er
Diem giang nhau gigra hai m6 hinh My la deu tach red phan xer 19 nghiep vi
(programming core/bussiness logic) ra khai nhOng phi thuec ve tai nguyen va mai
trterng. Presentation Layer (PL) the hien gi6ng nhu chuc nang Ma View va Controller.
Bussiness Layer (BL) va Data Access Layer (DL) the hien giting nhu chfrc nang cua
Model. Nhin 6 gee do' nay, thi MVC tuong dtrcmg vol 3 — layer.
Trong 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.
Hinh 2.6.
Qua
trinh :rut& trong
mo
hinh 3 — layers.
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
Hinh 2.7.

Qua
Binh buyen
trong MVC.
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 22
a
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)
ctia dai tugng
do
hoa di. Mat dal ttrang da hoa c6 the
di
ding thay doi giao dien bang
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
Xerox PARC nghien thuva phat
teen
vao thap nien 70 cita the k9 20).
c. Nhtriac diem
Hai v6i cac du an nhe, viec ap dung m6 hinh MVC se gay citing kat,
tin
thoi gian
trong qua trinh phat trier. Tin then. gian Ming chuyen der lieu gifta cac thanh phan.
Trang 23
PHAN 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;
- URL;
- Model;
-
View;
- Controller;
- Cac Library;
-

Cac Helper.
3.1. Chu true thu myc Framework
+ Root
-
Thu moc chira website.
+ application
-
Thu num dinh cho l'Op trinh
vien, cac top tin duqc lop trinh
theo cau frac MVC.

+
config
-
Thu moc chira cac tap tin cau
hinh.
+ controllers
-

Chira cac lap controllers.
+ models
-
Chita cac lop models.
+ core
-

Chin cac controller dieu Ichien
he thong.
+ errors
-

Chita cac tap tin thong bao
GSL
+ helpers
-

Chita cac helper do l'Op trinh
vien Ur dinh ngliia.
+ hooks
-
Chao cac tap tin de ma reng ma
z
nguon
dm Framework.
+ libaries
-

Chita cac library do l'Op trinh
vien
to dinh nglifa.
Trang 24
+ views
-

Chira cac tap tin giao dien cila
he thAng.
+ install
-
Thu mvc cai flat Framework.
+ config
-

Thu mvc china cac 4p tin cAu
hinh khi cai dat.
+ controllers
-
Thu mvc china cac controller
phvc Ai cho viec cai dat.
+ models
-
Thu mvc china cac model phvc
vv cho viec cai dat.
+ views
-
Thu mvc chira the tap tin giao
dien khi cai dat.
+ ecommerce.sql
-
Database

mac

djnh

cata

hg
thAng.
+ index.php
-
Tap


tin

dieu

huong

the
controller khi cai dat.
+ system
-
Thu mvc bao geim ph'An loi tha
Framework.
+ Helpers
-
Thu mvc chin the Mm hii trot da
&roc lay dung.
+ Libraries
-
Thu mvc china cac thu vi'en da
duge xay dung.
+ system files
-
G6m
cac file he thAng nhu:
core.php, load.php, registry.php,
• "
+ config.php
-
Tap tin chfra
cau

hinh atm he
thAng.
+ index.php
-

Controller d'Au vac', tiep nhan
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 25

×