You are on page 1of 21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

BlogHocTap
XydngPHPFramework
Madeinttui
September11th,2011trongdanhmcPHP

lumicthigianngivitbichiasviccbnvcck
thuttrongqutrnhlmvicviPHPcamnh.Hmnay,mnhchias
nccbnmtsvnkhixydngmtframeworkPHPchoring
mnh.Bivitkhngdnhchophncthaivccbndngvi
ngnnglptrnhwebPHP.
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

1/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

KhngtngilunnirngvitPHPframeworkchichokh,cbit
baonhiuciPHPframeworkttlmri,vitchichomtmcha
chcttvmnhnghhuhtccbncngngheiunythng
xuyn.Thtsnglnhvy,crtnhiuPHPframeworkrttt
hingi,vyccbncthiliuccframeworkuranuai
cngtheocitritldngframeworkcangikhc^^.
HuhtccPHPframeworkuhngnmttpitng
developerno,tdnkh,tquymngdngtonnh,t
tptnhnngnhiuntvchcchnchngcciPHPframework
novitrapng100%nhucuchowebsitecabnhaywebsite
mkhchhngyucubnphttrinvthnglthaciny,thiu
cikiavccPHPframeworkarathngtheonguynlOneSize
FitsAllcngngsdng.Do,bnstipcnccvn
nhanhhnnulframeworkcabn,cthlphttrinmihoc
citin,nngcp,cpnht.
MnhkhngtptrungvovicsosnhccPHPframeworkcngnh
cngdngcaframeworkttuinhiuvccbncngcthhnhdung
cphnnocngdngcavicitheoframeworkcamnh.Mnh
chiasmtsvnkthutmmnhpdngchoframework
xydngchoccwebsitecamnhcngnhlReader.vnccbnc
thhnhdungcvicxydngmtPHPframeworkkhngcgl
ngs.
MtPHPFrameworktheomnhcthdngclframeworkch
trmtscimsau:
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

2/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

1.OOP
2.CutrcFile/Directoryngin
3.RegistryvFrontControllerPattern
4.MhnhMVC
5.Phnquyn
6.Caching&Scalability
7.DatabaseAbstraction
8.TemplateEngine
9.HtrURLRewrite
10.angnng
NuccbntnglmnhiuhoccnhiuvPHPFrameworkth
cnkhnhiucimkhcmccframeworkhtrnhORM,
HMVC,TestMnhkhngphildevelopernngvlthuytcaosiu,
bicchtipcncamnhhngnvicframeworkphithcs
nginnhngcngscmnhcngnhsuynchuynxy
dngccngdnglnkhicpnht,citin.

http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

3/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

1.OOP
NubnnochanghenOOP(Lptrnhhngitng)thmnh
nghcthbnangthiustmtcigccknghimtrngnu
munphttrinwebtrongthiibygi.HuhtccPHP
FrameworkhinnayutipcntheoOOPnnvictrinkhai
frameworkcabntheoOOPsgipviclmvicnhm,tisdng
codekhitrinkhaiwebsitecabnddngvthuntinhn.
Thngthmiclasssctoringtrongmtfilephpvttrong
ccthmctngngngngcnhkhiincludechy.H
thngcabncthcnhiuloiClass,vdccclasslccModel,
Controller,ViewhocnginlccclassUtilitythchinmts
tnhnngnlnhgiemail,download,resize,helper
OOPtrongframeworkcabnnnhtrLazyloading,tclccht
ngincludefileClassnutoobjectchkhngphimilnchyl
includefilemanualbnghminclude

2.CutrcFile/Directoryngin
yclliubnnncnnhcktrckhixydngframework
cngnhdngframeworkno.Nuframeworkcabnchthng
file,thmcrmr,khngtheoquylut,nhmchcnngthkhic
vncndebugchnhsa,citinsnhhngnbnv
teamcamnhrtnhiu.

http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

4/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

Nguyntccamnhlhthngkhngcqunhiuthmc,vdc
ccthmcchoModel,View,Controller,Include,Upload,Language,
Librarygomccclasshayfilelinquanvo.Ritrongnhngth
mc,tythitkmmnhcthchiathmcconchophhp.

3.RegistryvFrontControllerPattern
SdngmtsPatternthngdngsgipmhnhngdngcabn
dhiuhnchongikhctipcnlnuviframeworkcabn.
RegistryPatternlmtpatternngin,gingnhmtbinglobal
chungchotonbngdngcthtruycptheodngthuctnhi
tngvchaccthngtinchungnhobjectconfig,setting,language,
db
FrontControllerPatterncnglmtpatternthngdng,quycltt
crequestPHPphiiqua1filenotptrungxlcctinx
l,huxltrckhiiuhngncccontroller/actiontngng.
Patternnythngthyhnhthcttcccrequestuiquafile
/index.php,scccxlchungnhincludethvin,bootstrap
hthng,toregistry

4.MhnhMVC
MhnhMVClmtmhnhtytheocmnhncatngngiv
hngtipcnthcchthitkmhnhMVCcngkhc.Khngt
nngccvnlthuytnhModel,View,Controllerlg,nphi
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

5/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

nhthnomigilModel,View,Controllernhm.Tuilmth,tui
gilModel,cnanhnikhngphiModellchuyncaanh.l
cchtipcnMVCcamnhvmnhcngchiasbndi.
Model:ModellccClassktnitrctipnDatabasethngqua
DatabaseAbstraction(PDO)thaotclnccTable,cngnhm
hnhORM,mitablennc1ModelthchinccthaotcnhThm
(INSERTINTO),Chnhsa(UPDATE),Xa(DELETEFROM),
Truyxuttmkim(SELECT).Ngoira,tytheoModelmccc
methodkhcvdnhmodelUSERcamnhcthcccphng
thcgetSmallImage()lyavatarpath
View:llayermnhnvicxutktqurequestrafromtend,c
thlHTML,XML,JSON,PlaintexthocHTML,CSS,ImageH
thngViewthngktnitimttemplateenginenogipView
trinkhainginvnhanhchnghn.
Controller:Tytheohthngcabnthbnthitkcontroller.Cc
controllerthnglccxlktniccModelvinhau,thchincc
xlcbnlinquannRequest(GET,POST,FormValidate)v
ktniviViewxutraHTML,XMLnhthitkcaView.
TrongControllerscccAction,tclccxlnhcho1chcnng.
VdtacControllerProductcthcccActionnhLitk,chitit,
tmkim
Ngoira,hthngcamnhsdngkhinimControllerGroup,tcl
gomcccontrollerchunglibvo1thmcgil1controllergroup,
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

6/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

vdcccontrollerxlbackendhocfrontendhocbackground
task

5.Phnquyn
Hthngphnquyncabnphichititmbongngi,
ngvic.BncththitkccUserGroupkhcnhauvphnquyn
theotngGroupvdGroupGuest,Member,Moderator,Adminkt
hpvihthngchcnngcaControllerGroup,Controller,Action,
bncthphnquynchititntngitngcththchin
ctnhnngny,tnhnngkia
Bnkhngnhtthitphithitkdatabasethchinvicny,v
hthnglnmcnndatabasephnquynthhiticho
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

7/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

Database.Tachngindngfilesettingnophnquynuser,
cntableuserbnchcnthmmtfieldlGROUPIDphnquyn
thchhpchouser.

6.Caching&Scalability
Cachingsgiphthngcabngimticctnhnngthng
xuyncntruyxutdatabasehoccctruyxutdatabasetnnhiuthi
gian.Bncnthitktndngcccchcachetnginn
phctpvcnhiucchcacheihibncithoccuhnh
trn1hocnhiuserver.
BncthxemxtviccachechoModeldatahoccachechoxlca
1Actionno,vdthytrangchkhngthayinhiuthbn
cachetonbnidungtrangchvfilehocRAM(tytheobnchn
cacheu)gimticctruyvndatabaselpilplitrang
ch.
CncachechoModelthnginhn,vdthngtinca1Userthay
vlcnobncngSELECTttableUserlychititthsaomnh
khngluvocache,rikhimunlythngtinusertachcnvo
cachelythngtinuserny,nubnchnthigiancachephhp
thdliucabnsgnnhlthigianthc(realtimedata)
Scalabilitylkhnngmrngcawebsite.Bnnnthitksaocho
cththaythccthnhphnringr,tiuringrkhimrng
websitekhngphithayinhiu.Vdthayicchcache,vics
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

8/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

dngccphngthccaModelkhngthayi,chlchitittrin
khaitrongModelthayi.Bncthchuyncachefilesangcache
RAMhoctRAMtrongAPClnRAMtrongMemcache.

7.DatabaseAbstraction
Ngynay,himkhicnthycctruyvndatabasesdngmysql_*()
hoccchmtngtkhcmthngthydngAbstractionthng
quaccObjectDbtruyvndatabase.ThmchviORM,bncng
cththyrngkhngcnkhinimSQLmcdbnangsdng
SQLDBServer.
CnhiuDatabaseAbstractionchobnlachn,nhngnubnang
phttrinPHP5thPDOcllgiiphpttnhtbisngin
cngnhhtrkhnhiuthnhtransaction,preparedstatementcho
bomt

8.TemplateEngine
TemplateenginelhthnglmvictrctipviHTMLtemplatev
phihpviViewlayertrongMVCxutwebpage,dliuracho
ngidng.Ckhnhiutemplateenginelachntnginn
phctp.MnhchnSmartybitnhthngdngvphongphcan.
NuainismartylmtTemplateenginechmthnucdpni
chuynvimnhthmnhschchobnbitclbnsai.

9.HtrURLRewrite
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

9/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

Ngynay,SEOlmtphnttyucaccwebsite.Khngphich
mangmcchSEO,vicrewriteURLcncnhiumcchnhlm
chovicchiascclinkhiuquvdhiuhn.Khixydng
Framework,bncnxemxtvichtrrewriteURLgipcho
websitecabntthn.CnhiubnthanphinllmRewriteURL
thphicanthipRegularExpressiontrnfile.htaccesskhnhiu.Thc
ra,nubnsdngFrontcontrollerpatternchoRewriteURLths
thymivicnginhn.
Thayvfile.htaccesslovicrewrite,bnhychoPHPlovny,
khivoPHPfile,bnsrtthoimirewritekiugcngc,
phntchthahbicnhiutrnghprewritedngPHPkmvi
websitecabnmihiuqu.Do,nupdngpatternnythfile
htaccesscabnchcn1dngrewriterulesau:
Options +FollowSymLinks
Options -Indexes
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

10.angnng
Ngoivichtrangnngdliu(nubncnhucuthbt
bucbnphitrinkhai)thhtrangnngchogiaodincngrt
quantrng.Victhitksaochovicthayi,thmbtngnngphi
nginvngbsgipbntitkimrtnhiuthigiankhim
rnghngnngcawebsitesuany.
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

10/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

trnl10cimmmnhthykhitrinkhaimtPHPFramework
bncnphixemxttrinkhai.Ttnhin,ccyutnhbomt,
Documentation,Codestylephiliubtbuckhitrinkhai1
framework.BivitkhngthnotipcntheohngCodecv
crtnhiuCode,vthcsnubnmuncodeframeworkthbn
cngbitphicodegri,bivitnygipbnthycmtbc
tranhcthtmhiuthmvtxydngchomnh1PHP
frameworkthtngvcthtrthnh1Opensourceniting.

Nitipbivitny,nmtrongchuihotngFundingfor
Reader.vn,bloghoctapstchcmtbuihithocthhngdn
xydngPHPframeworknccitngquantm,ngthitm
kimkinhphtiptcduytrvmrngmngxhisch
Reader.vn^^.
Nidunghithosxoayquanhvicchiaskinhnghimxydng
mtPHPFrameworknhtnglmviReader.vncngnhchias
nccbn10vntrnhbytrnccbncthnhntng
tnhnvCodephinhthnochkhngtrutngnhtrn.
Tnhitho:LmFrameworkkhngkh.
Trnhby:VDuyTunBloghoctap.com&Reader.vnFounder
Thigian:8:3011:30,Chnht,ngy02/10/2011
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

11/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

aim:angcpnht[TP.HChMinh]
Slngdkin:50ngi.

DoslngngingkbuiOfflinekhngnn
mnhrtticthngbonccbnlbuiOfflines
khngdinranhdkin.Mongccbnthngcm!
Nucchithbloghoctapslnltchiasncc
bnnhngvnccptrn.
Bivitlinquan:
1. TnhyuFramework,PlugInhayBackdoor?
2. Photoshopframeworkthitkweb

17bnhlun

dungsays:
September12,2011at11:08am

Tunkhngpostciframeworkcamnhychopkon
nghinculunnh?
[Reply]
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

12/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

Reply

dungsays:
September12,2011at11:09am

C1ciquantrngkhisdngccpopularframeworkslnc
1activecommunityvmnhsthngxuyncupdateccchc
nngmi
[Reply]

adminReply:
September12th,2011at12:10pm

Hianh,nuemqungciframeworklnthuphimtcngngi
vitbinylmgmchl..blahblah..frameworkcatuin,xii
^^.khngphilcchtipcncaem,hihi.Vliframework
caemcibpqu,alnchtmingikhngbitxi,vnl
madeinttuim,uphixyraopensource.
[Reply]
Reply

MinhTunsays:
September14,2011at2:11am

UrlRoutingwithPHPthtlkhhiu.Hmnoanhlm1bi
hngdnklngvn
[Reply]
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

13/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

Reply

trnthsays:
September14,2011at11:46am

Uicinythuccptngthcao.
Emlmquenvikhinimframeworkquymthpthithng
themhaytipxcframeworkdidngthemewordpress(emton
lmcinym).
Numithuttpc.Rtmongscngheanhgingo
vobuihm.Mnhbitccucacito.Mnhlmcinhd
hnnhiu.hihi
[Reply]
Reply

LHongDngsays:
September16,2011at7:26am

nglkhngnncigcngItsmine,butitsforfree!.Nu
cimnhnghrahoccookmnngthcngphictrchtph
ch,cvythcontributormichngmlmvicc.
DevelopersvngidngVNnhngfree(hoccracked)quluri
nnmradngvichuyntrtinchobnquyn.nghcch
lmcaTun,saunynutchcseminarthmnhcngchcth
lmtheocchnythi.Nukhngthchcvtcmmnnghin
cuvhctp!
[Reply]
Reply

thamtusays:
September17,2011at12:33pm
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

14/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

frameworkmadeinttuimnhc12revnhngvnkhkhnci
khonangnngvagiaodin.Thamkhoqua1viframework
thhcngvnbhnchangnngvagiaodin
[Reply]
Reply

MinhBosays:
September18,2011at12:01am

Vikinhnghimlngvlntrnccloiframework(t
frameworkttuituisngnframeworkopensource)vCMS
Opensourcethmnhvnthchxinhngframeworkopensource&
CMSOpensourcehn.Sdvylv1sldosau:
1.Frameworktbuildtsngchdot1n3hocnhiuhn
chtngilitbuildvinhau.Dochtlngcaframeworks
tythucvokinhnghimvtrnhcatngthnhvin.Mthnh
vincngtthkinhnghimtngtricngcngt.l1imthua
thitsoviFrameworkOpensourcedonhiunggp
2.iviccwebsitecooperatehocphctphnchtlnhng
trangtintcchophpngkuser,comment,like,v.v..thmnhs
dngCMSOpensourcevnnhanh,anton,hiuqu.
3.Cniviccngdngphctptrnnnwebthmnhses
dngFrameworkOpensourcevtrnhcrirocbnmmnh
chagp,tndngcnhngthnhqucangiitrc.

http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

15/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

[Reply]
Reply

Sonosays:
September19,2011at3:44pm

HianhTun!cbloganhlunhnghmicomment1ci^^.
Bivitrthay,nhngecmtiuthcmcl:lmhnh
MVCrithunhtthitphicnnTemplateEngine(Smarty),
phncodevgiaodinctchbitrim,chcnngcacheth
cmc6mnhn.
Monganhtrli.
[Reply]

adminReply:
September19th,2011at3:51pm

HiSono,
MVClmtpatternchungchung,cnTemplateEnginelmtng
dngrrngsdngchoViewLayerhayPresentationLayer.Em
cthkhngdngTemplateEnginethciViewcaemthno?
emnilphncodevphngiaodintchbith?
Khngbitemthnochiuanhmtvskhcbittrn
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

16/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

chnhllView,tcDesignthkhngcbtkmtonCode
PHPnodnhv,tclkhilmviView,emslmhontonvi
HTML,CSSvJS.VcththoimitndngscmnhcaIDE
designringmkhngbbucvocodePHP,do,designer
khngquantmnPHPkhilmvicviTemplateengine,ymi
chnhlsringbitmanhcpn.
Thn.
[Reply]
Reply

codersays:
October7,2011at9:40pm

AnhcthnirhnvcchLazyLoadingckhng?
ThanksAnhnhiu
[Reply]
Reply

lethanhsonsays:
October17,2011at3:13am

EmthchnhngcuhicaAnhtrongngktukhoa.info
[Reply]
Reply

php.vnsays:
October17,2011at11:34pm

Bcnocnhithuytviphp,bcTungiithiugipv
qunlphp.vnci
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

17/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

[Reply]
Reply

KhanhTransays:
October31,2011at8:47pm

AnhTunimianh,emrtmuncthamgiabuioffline
nyKhinotchcthchoembitvinhaa.
[Reply]
Reply

hinhanhdepsays:
January17,2012at8:42pm

hngicnganhemvobuinh
[Reply]
Reply

ichuotsays:
February27,2012at1:10pm

TnhngnimcapcTunsau1thigianmi&mth
cngcookdcci1tiniFramwork.Saumyngysmsoitmvso
snhcctemplateenginegnvothmnhquytnhdngTwig
lmTemplateEngine.isuvoClass&ObjectcaPHPmithyn
nhiucihaymmnhchabit
[Reply]
Reply

mrgunsays:
April23,2012at10:44am
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

18/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

Emchocnh.
Emxinhi1cht:Khiemlm1websitebnhngtheomhnhmvc.
vkosdngframeworknoc.
Ttngxl:
Controllers:Cccontroller.
Models:Ccmodel
View:Ccview
ControllergiModelridliuvtrongView.

Vd:controllers/produc.phpsgimodelcan
models/model_product.phpvsauviewraviews/product/index.php
Emlmwebbnhngnh.
Bygitrongtrangchcawebsiteemmunviewlnc:
view/product/index.php1gcnhbnphithphilmnhthno
.
HaytrangmnhmunxydngciMenulydliutCSDLra.
Thphivitthmcontrollervmodelriviewcinyemlmc.
Nhnghiuthviewntrnhtcctrangthemchalmc.
Hi!Emthycngibovitthmlphelpers,emcngchar
lm.
Mongcccbngip/
[Reply]
Reply

http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

19/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

Gibnhlun
Tncabn(btbuc)
Email(skhngccngbrangoi)(btbuc)
Website

Gibnhlun

Notifymeoffollowupcommentsviaemail

Danhmc
Android

Business

Flash

GraphicDesign

ITGuys

Javascript

Miscellaneous

Mobile

Photography

PHP

Reviewsch

SearchEngineOptim

Security

software

TechStartup

Technology

UserInterfaceDesig

WebDesign

WebProgramming

Tmkim
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

20/21

9/11/2014

Xy dng PHP Framework Made in t tui | Blog Hoc Tap

NHPTCNTM+ENTER

Lutr
August2014

March2014

December2013

September2013

August2013

July2013

June2013

September2012

May2012

March2012

February2012

January2012

December2011

November2011

September2011

August2011

July2011

June2011

May2011

April2011

March2011

February2011

January2011

December2010

November2010

October2010

September2010

August2010

July2010

June2010

May2010

April2010

March2010

February2010

January2010

December2009

November2009

October2009

September2009

August2009

July2009

October2008

ABOUTME

November2008

September2008

GIOTRNHPHP

2014BlogHocTap

http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html

21/21

You might also like