xây dựng php framework “made in tự tui” _ blog hoc tap.pdf
DESCRIPTION
Xây dựng PHP Framework “Made in tự tui” _ Blog Hoc Tap.pdfTRANSCRIPT
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 1/21
BlogHocTap
XydngPHPFrameworkMadeinttui
September11th,2011trongdanhmcPHP
lumicthigianngivitbichiasviccbnvcckthuttrongqutrnhlmvicviPHPcamnh.Hmnay,mnhchiasnccbnmtsvnkhixydngmtframeworkPHPchoringmnh.BivitkhngdnhchophncthaivccbndngvingnnglptrnhwebPHP.
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 2/21
KhngtngilunnirngvitPHPframeworkchichokh,cbitbaonhiuciPHPframeworkttlmri,vitchichomtmchachcttvmnhnghhuhtccbncngngheiunythngxuyn.Thtsnglnhvy,crtnhiuPHPframeworkrttthingi,vyccbncthiliuccframeworkuranuaicngtheocitritldngframeworkcangikhc^^.
HuhtccPHPframeworkuhngnmttpitngdeveloperno,tdnkh,tquymngdngtonnh,ttptnhnngnhiuntvchcchnchngcciPHPframeworknovitrapng100%nhucuchowebsitecabnhaywebsitemkhchhngyucubnphttrinvthnglthaciny,thiucikiavccPHPframeworkarathngtheonguynlOneSizeFitsAllcngngsdng.Do,bnstipcnccvnnhanhhnnulframeworkcabn,cthlphttrinmihoccitin,nngcp,cpnht.
MnhkhngtptrungvovicsosnhccPHPframeworkcngnhcngdngcaframeworkttuinhiuvccbncngcthhnhdungcphnnocngdngcavicitheoframeworkcamnh.MnhchiasmtsvnkthutmmnhpdngchoframeworkxydngchoccwebsitecamnhcngnhlReader.vnccbncthhnhdungcvicxydngmtPHPframeworkkhngcglngs.
MtPHPFrameworktheomnhcthdngclframeworkchtrmtscimsau:
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 3/21
1.OOP
2.CutrcFile/Directoryngin
3.RegistryvFrontControllerPattern
4.MhnhMVC
5.Phnquyn
6.Caching&Scalability
7.DatabaseAbstraction
8.TemplateEngine
9.HtrURLRewrite
10.angnng
NuccbntnglmnhiuhoccnhiuvPHPFrameworkthcnkhnhiucimkhcmccframeworkhtrnhORM,HMVC,TestMnhkhngphildevelopernngvlthuytcaosiu,bicchtipcncamnhhngnvicframeworkphithcsnginnhngcngscmnhcngnhsuynchuynxydngccngdnglnkhicpnht,citin.
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 4/21
1.OOP
NubnnochanghenOOP(Lptrnhhngitng)thmnhnghcthbnangthiustmtcigccknghimtrngnumunphttrinwebtrongthiibygi.HuhtccPHPFrameworkhinnayutipcntheoOOPnnvictrinkhaiframeworkcabntheoOOPsgipviclmvicnhm,tisdngcodekhitrinkhaiwebsitecabnddngvthuntinhn.
Thngthmiclasssctoringtrongmtfilephpvttrongccthmctngngngngcnhkhiincludechy.HthngcabncthcnhiuloiClass,vdccclasslccModel,Controller,ViewhocnginlccclassUtilitythchinmtstnhnngnlnhgiemail,download,resize,helper
OOPtrongframeworkcabnnnhtrLazyloading,tclcchtngincludefileClassnutoobjectchkhngphimilnchylincludefilemanualbnghminclude
2.CutrcFile/Directoryngin
yclliubnnncnnhcktrckhixydngframeworkcngnhdngframeworkno.Nuframeworkcabnchthngfile,thmcrmr,khngtheoquylut,nhmchcnngthkhicvncndebugchnhsa,citinsnhhngnbnvteamcamnhrtnhiu.
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 5/21
Nguyntccamnhlhthngkhngcqunhiuthmc,vdcccthmcchoModel,View,Controller,Include,Upload,Language,Librarygomccclasshayfilelinquanvo.Ritrongnhngthmc,tythitkmmnhcthchiathmcconchophhp.
3.RegistryvFrontControllerPattern
SdngmtsPatternthngdngsgipmhnhngdngcabndhiuhnchongikhctipcnlnuviframeworkcabn.
RegistryPatternlmtpatternngin,gingnhmtbinglobalchungchotonbngdngcthtruycptheodngthuctnhitngvchaccthngtinchungnhobjectconfig,setting,language,db
FrontControllerPatterncnglmtpatternthngdng,quyclttcrequestPHPphiiqua1filenotptrungxlcctinxl,huxltrckhiiuhngncccontroller/actiontngng.Patternnythngthyhnhthcttcccrequestuiquafile/index.php,scccxlchungnhincludethvin,bootstraphthng,toregistry
4.MhnhMVC
MhnhMVClmtmhnhtytheocmnhncatngngivhngtipcnthcchthitkmhnhMVCcngkhc.KhngtnngccvnlthuytnhModel,View,Controllerlg,nphi
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 6/21
nhthnomigilModel,View,Controllernhm.Tuilmth,tuigilModel,cnanhnikhngphiModellchuyncaanh.lcchtipcnMVCcamnhvmnhcngchiasbndi.
Model:ModellccClassktnitrctipnDatabasethngquaDatabaseAbstraction(PDO)thaotclnccTable,cngnhmhnhORM,mitablennc1ModelthchinccthaotcnhThm(INSERTINTO),Chnhsa(UPDATE),Xa(DELETEFROM),Truyxuttmkim(SELECT).Ngoira,tytheoModelmcccmethodkhcvdnhmodelUSERcamnhcthcccphngthcgetSmallImage()lyavatarpath
View:llayermnhnvicxutktqurequestrafromtend,cthlHTML,XML,JSON,PlaintexthocHTML,CSS,ImageHthngViewthngktnitimttemplateenginenogipViewtrinkhainginvnhanhchnghn.
Controller:Tytheohthngcabnthbnthitkcontroller.CccontrollerthnglccxlktniccModelvinhau,thchinccxlcbnlinquannRequest(GET,POST,FormValidate)vktniviViewxutraHTML,XMLnhthitkcaView.TrongControllerscccAction,tclccxlnhcho1chcnng.VdtacControllerProductcthcccActionnhLitk,chitit,tmkim
Ngoira,hthngcamnhsdngkhinimControllerGroup,tclgomcccontrollerchunglibvo1thmcgil1controllergroup,
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 7/21
vdcccontrollerxlbackendhocfrontendhocbackgroundtask
5.Phnquyn
Hthngphnquyncabnphichititmbongngi,ngvic.BncththitkccUserGroupkhcnhauvphnquyntheotngGroupvdGroupGuest,Member,Moderator,AdminkthpvihthngchcnngcaControllerGroup,Controller,Action,bncthphnquynchititntngitngcththchinctnhnngny,tnhnngkia
Bnkhngnhtthitphithitkdatabasethchinvicny,vhthnglnmcnndatabasephnquynthhiticho
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 8/21
Database.Tachngindngfilesettingnophnquynuser,cntableuserbnchcnthmmtfieldlGROUPIDphnquynthchhpchouser.
6.Caching&Scalability
Cachingsgiphthngcabngimticctnhnngthngxuyncntruyxutdatabasehoccctruyxutdatabasetnnhiuthigian.Bncnthitktndngcccchcachetnginnphctpvcnhiucchcacheihibncithoccuhnhtrn1hocnhiuserver.
BncthxemxtviccachechoModeldatahoccachechoxlca1Actionno,vdthytrangchkhngthayinhiuthbncachetonbnidungtrangchvfilehocRAM(tytheobnchncacheu)gimticctruyvndatabaselpilplitrangch.
CncachechoModelthnginhn,vdthngtinca1UserthayvlcnobncngSELECTttableUserlychititthsaomnhkhngluvocache,rikhimunlythngtinusertachcnvocachelythngtinuserny,nubnchnthigiancachephhpthdliucabnsgnnhlthigianthc(realtimedata)
Scalabilitylkhnngmrngcawebsite.Bnnnthitksaochocththaythccthnhphnringr,tiuringrkhimrngwebsitekhngphithayinhiu.Vdthayicchcache,vics
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 9/21
dngccphngthccaModelkhngthayi,chlchitittrinkhaitrongModelthayi.BncthchuyncachefilesangcacheRAMhoctRAMtrongAPClnRAMtrongMemcache.
7.DatabaseAbstraction
Ngynay,himkhicnthycctruyvndatabasesdngmysql_*()hoccchmtngtkhcmthngthydngAbstractionthngquaccObjectDbtruyvndatabase.ThmchviORM,bncngcththyrngkhngcnkhinimSQLmcdbnangsdngSQLDBServer.
CnhiuDatabaseAbstractionchobnlachn,nhngnubnangphttrinPHP5thPDOcllgiiphpttnhtbisngincngnhhtrkhnhiuthnhtransaction,preparedstatementchobomt
8.TemplateEngine
TemplateenginelhthnglmvictrctipviHTMLtemplatevphihpviViewlayertrongMVCxutwebpage,dliurachongidng.Ckhnhiutemplateenginelachntnginnphctp.MnhchnSmartybitnhthngdngvphongphcan.NuainismartylmtTemplateenginechmthnucdpnichuynvimnhthmnhschchobnbitclbnsai.
9.HtrURLRewrite
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 10/21
Ngynay,SEOlmtphnttyucaccwebsite.KhngphichmangmcchSEO,vicrewriteURLcncnhiumcchnhlmchovicchiascclinkhiuquvdhiuhn.KhixydngFramework,bncnxemxtvichtrrewriteURLgipchowebsitecabntthn.CnhiubnthanphinllmRewriteURLthphicanthipRegularExpressiontrnfile.htaccesskhnhiu.Thcra,nubnsdngFrontcontrollerpatternchoRewriteURLthsthymivicnginhn.
Thayvfile.htaccesslovicrewrite,bnhychoPHPlovny,khivoPHPfile,bnsrtthoimirewritekiugcngc,phntchthahbicnhiutrnghprewritedngPHPkmviwebsitecabnmihiuqu.Do,nupdngpatternnythfilehtaccesscabnchcn1dngrewriterulesau:
Options +FollowSymLinksOptions -IndexesRewriteEngine onRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
10.angnng
Ngoivichtrangnngdliu(nubncnhucuthbtbucbnphitrinkhai)thhtrangnngchogiaodincngrtquantrng.Victhitksaochovicthayi,thmbtngnngphinginvngbsgipbntitkimrtnhiuthigiankhimrnghngnngcawebsitesuany.
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 11/21
trnl10cimmmnhthykhitrinkhaimtPHPFrameworkbncnphixemxttrinkhai.Ttnhin,ccyutnhbomt,Documentation,Codestylephiliubtbuckhitrinkhai1framework.BivitkhngthnotipcntheohngCodecvcrtnhiuCode,vthcsnubnmuncodeframeworkthbncngbitphicodegri,bivitnygipbnthycmtbctranhcthtmhiuthmvtxydngchomnh1PHPframeworkthtngvcthtrthnh1Opensourceniting.
Nitipbivitny,nmtrongchuihotngFundingforReader.vn,bloghoctapstchcmtbuihithocthhngdnxydngPHPframeworknccitngquantm,ngthitmkimkinhphtiptcduytrvmrngmngxhischReader.vn^^.
NidunghithosxoayquanhvicchiaskinhnghimxydngmtPHPFrameworknhtnglmviReader.vncngnhchiasnccbn10vntrnhbytrnccbncthnhntngtnhnvCodephinhthnochkhngtrutngnhtrn.
Tnhitho:LmFrameworkkhngkh.
Trnhby:VDuyTunBloghoctap.com&Reader.vnFounder
Thigian:8:3011:30,Chnht,ngy02/10/2011
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 12/21
aim:angcpnht[TP.HChMinh]
Slngdkin:50ngi.
DoslngngingkbuiOfflinekhngnnmnhrtticthngbonccbnlbuiOfflineskhngdinranhdkin.Mongccbnthngcm!Nucchithbloghoctapslnltchiasnccbnnhngvnccptrn.
Bivitlinquan:
1. TnhyuFramework,PlugInhayBackdoor?2. Photoshopframeworkthitkweb
17bnhlun
dungsays:September12,2011at11:08am
Tunkhngpostciframeworkcamnhychopkonnghinculunnh?
[Reply]
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 13/21
Reply
dungsays:September12,2011at11:09am
C1ciquantrngkhisdngccpopularframeworkslnc1activecommunityvmnhsthngxuyncupdateccchcnngmi
[Reply]
adminReply:September12th,2011at12:10pm
Hianh,nuemqungciframeworklnthuphimtcngngivitbinylmgmchl..blahblah..frameworkcatuin,xii^^.khngphilcchtipcncaem,hihi.Vliframeworkcaemcibpqu,alnchtmingikhngbitxi,vnlmadeinttuim,uphixyraopensource.
[Reply]
Reply
MinhTunsays:September14,2011at2:11am
UrlRoutingwithPHPthtlkhhiu.Hmnoanhlm1bihngdnklngvn
[Reply]
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 14/21
Reply
trnthsays:September14,2011at11:46am
Uicinythuccptngthcao.Emlmquenvikhinimframeworkquymthpthithngthemhaytipxcframeworkdidngthemewordpress(emtonlmcinym).Numithuttpc.Rtmongscngheanhgingovobuihm.Mnhbitccucacito.Mnhlmcinhdhnnhiu.hihi
[Reply]
Reply
LHongDngsays:September16,2011at7:26am
nglkhngnncigcngItsmine,butitsforfree!.Nucimnhnghrahoccookmnngthcngphictrchtphch,cvythcontributormichngmlmvicc.DevelopersvngidngVNnhngfree(hoccracked)qulurinnmradngvichuyntrtinchobnquyn.nghcchlmcaTun,saunynutchcseminarthmnhcngchcthlmtheocchnythi.Nukhngthchcvtcmmnnghincuvhctp!
[Reply]
Reply
thamtusays:September17,2011at12:33pm
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 15/21
frameworkmadeinttuimnhc12revnhngvnkhkhncikhonangnngvagiaodin.Thamkhoqua1viframeworkthhcngvnbhnchangnngvagiaodin
[Reply]
Reply
MinhBosays:September18,2011at12:01am
Vikinhnghimlngvlntrnccloiframework(tframeworkttuituisngnframeworkopensource)vCMSOpensourcethmnhvnthchxinhngframeworkopensource&CMSOpensourcehn.Sdvylv1sldosau:
1.Frameworktbuildtsngchdot1n3hocnhiuhnchtngilitbuildvinhau.Dochtlngcaframeworkstythucvokinhnghimvtrnhcatngthnhvin.Mthnhvincngtthkinhnghimtngtricngcngt.l1imthuathitsoviFrameworkOpensourcedonhiunggp
2.iviccwebsitecooperatehocphctphnchtlnhngtrangtintcchophpngkuser,comment,like,v.v..thmnhsdngCMSOpensourcevnnhanh,anton,hiuqu.
3.CniviccngdngphctptrnnnwebthmnhsesdngFrameworkOpensourcevtrnhcrirocbnmmnhchagp,tndngcnhngthnhqucangiitrc.
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 16/21
[Reply]
Reply
Sonosays:September19,2011at3:44pm
HianhTun!cbloganhlunhnghmicomment1ci^^.
Bivitrthay,nhngecmtiuthcmcl:lmhnhMVCrithunhtthitphicnnTemplateEngine(Smarty),phncodevgiaodinctchbitrim,chcnngcachethcmc6mnhn.
Monganhtrli.
[Reply]
adminReply:September19th,2011at3:51pm
HiSono,MVClmtpatternchungchung,cnTemplateEnginelmtngdngrrngsdngchoViewLayerhayPresentationLayer.EmcthkhngdngTemplateEnginethciViewcaemthno?
emnilphncodevphngiaodintchbith?
Khngbitemthnochiuanhmtvskhcbittrn
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 17/21
chnhllView,tcDesignthkhngcbtkmtonCodePHPnodnhv,tclkhilmviView,emslmhontonviHTML,CSSvJS.VcththoimitndngscmnhcaIDEdesignringmkhngbbucvocodePHP,do,designerkhngquantmnPHPkhilmvicviTemplateengine,ymichnhlsringbitmanhcpn.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,bcTungiithiugipvqunlphp.vnci
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 18/21
[Reply]
Reply
KhanhTransays:October31,2011at8:47pm
AnhTunimianh,emrtmuncthamgiabuiofflinenyKhinotchcthchoembitvinhaa.
[Reply]
Reply
hinhanhdepsays:January17,2012at8:42pm
hngicnganhemvobuinh
[Reply]
Reply
ichuotsays:February27,2012at1:10pm
TnhngnimcapcTunsau1thigianmi&mthcngcookdcci1tiniFramwork.SaumyngysmsoitmvsosnhcctemplateenginegnvothmnhquytnhdngTwiglmTemplateEngine.isuvoClass&ObjectcaPHPmithynnhiucihaymmnhchabit
[Reply]
Reply
mrgunsays:April23,2012at10:44am
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 19/21
Emchocnh.Emxinhi1cht:Khiemlm1websitebnhngtheomhnhmvc.vkosdngframeworknoc.Ttngxl:Controllers:Cccontroller.Models:CcmodelView:CcviewControllergiModelridliuvtrongView.Vd:controllers/produc.phpsgimodelcanmodels/model_product.phpvsauviewraviews/product/index.php
Emlmwebbnhngnh.Bygitrongtrangchcawebsiteemmunviewlnc:view/product/index.php1gcnhbnphithphilmnhthno.HaytrangmnhmunxydngciMenulydliutCSDLra.Thphivitthmcontrollervmodelriviewcinyemlmc.Nhnghiuthviewntrnhtcctrangthemchalmc.Hi!Emthycngibovitthmlphelpers,emcngcharlm.Mongcccbngip/
[Reply]
Reply
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 20/21
GibnhlunTncabn(btbuc)Email(skhngccngbrangoi)(btbuc)Website
Gibnhlun
Notifymeoffollowupcommentsviaemail
DanhmcAndroid Business Flash
GraphicDesign ITGuys Javascript
Miscellaneous Mobile Photography
PHP Reviewsch SearchEngineOptim
Security software TechStartup
Technology UserInterfaceDesig WebDesign
WebProgramming
Tmkim
-
9/11/2014 Xy dng PHP Framework Made in t tui | Blog Hoc Tap
http://bloghoctap.com/lap-trinh-php/xay-dung-php-framework-made-in-tu-tui.html 21/21
NHPTCNTM+ENTER
LutrAugust2014 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 November2008
October2008 September2008
ABOUTME GIOTRNHPHP
2014BlogHocTap