Professional Documents
Culture Documents
Xây D NG PHP Framework "Made in T Tui" - Blog Hoc Tap PDF
Xây D NG PHP Framework "Made in T Tui" - Blog Hoc Tap PDF
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
[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
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
[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
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
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
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