Fahmidda Dhibaatada Codbixinta Dheer ee PHP

Cusbooneysiintii ugu dambeysay: 01/24/2026
  • Codbixin dheer oo PHP ah ayaa codsiyada HTTP ka dhigaysa kuwo furan, taasoo xannibi karta shaqaalaha PHP ee yar isla markaana dhaawici karta baaxadda haddii la hirgeliyo wareegyada xannibaadda ee aan caadiga ahayn.
  • Hababka casriga ah ee dhacdooyinka ku salaysan, habaynta taxaddar leh iyo hagaajinta sida isku-darka, kaydinta iyo xaddidaadda heerka ayaa yareyn kara arrimo badan oo ra'yi ururin dheer ah.
  • Beddelka sida WebSockets, SSE iyo aaladaha waqtiga-dhabta ah ee la maareeyo badanaa waxay bixiyaan waxqabad ka wanaagsan xaaladaha isku-dhafka ah ee sare marka loo eego codbixinta dheer ee PHP ee cayriin.

Dulmar guud oo ku saabsan dhibaatooyinka codbixinta dheer ee PHP

Haddii aad waligaa isku dayday inaad hab-dhaqanka "waqtiga dhabta ah" ku dhejiso abka PHP-ga caadiga ah, waxaad u badan tahay inaad la kulantay ra'yi ururin dheer iyo dhibaatooyin waxqabad oo la yaab leh. Waxa u eg xeelad fudud - in codsiga HTTP la furo ilaa uu jiro wax cusub oo la diro - si lama filaan ah ayay u soo baxaysaa su'aalo aan fiicnayn oo ku saabsan hababka PHP ee xanniban, xusuusta server-ka, waqtiyada shaqada iyo sida dhulka loogu talagalay inaad ka sarreyso tiro yar oo isticmaaleyaal ah.

Tilmaamahan wuxuu si qoto dheer u eegayaa dhibaatada ra'yi ururinta ee dheer ee PHP, sababta ay u dhaqanto sida ay tahay, caqabadaha dhabta ah ee muhiimka ah iyo waxaad ka qaban karto. Waxaan dib u eegi doonnaa inta codbixintu shaqeyneyso, sababta ay u tahay mid aan caqli gal ahayn sleep()Hirgelinta ku salaysan -ku-saleysan badanaa way ka sii daran tahay ra'yi ururin gaaban, sida wareegyada dhacdooyinka casriga ah iyo adeegayaasha shabakadu ay u caawin karaan, iyo hagaajinta u qalanta dadaalka. Inta aan jidka ku jirno waxaan isbarbar dhigi doonnaa ra'yi ururin dheer oo lala sameeyo WebSockets iyo Dhacdooyinka Server-Sent, waxaan taaban doonnaa amniga iyo maaraynta khaladaadka, waxaanan eegi doonnaa goorta aad ka tagi lahayd PHP wax la mid ah Node.js ama madal waqtiga-dhabta ah ee la maamulo.

Waa maxay ra'yi ururin dheer iyo sidee dhab ahaantii u shaqeysaa?

Asal ahaan, ra'yi ururin dheer waa HTTP oo keliya halkaas oo server-ku si ula kac ah u dib u dhigo jawaabta ilaa uu ka helo wax xiiso leh oo la yiraahdo. Halkii macmiilku uu ku dhufan lahaa server-ka dhowr ilbiriqsi kasta isagoo weydiinaya "ma jiraan wax cusub?", macmiilku wuxuu dirayaa codsi uu server-ku furan yahay, isagoo ka jawaabaya oo keliya marka xog cusub la diyaariyo ama waqtigu dhammaado.

Wareegga codsiga/jawaabta codbixinta ee dheer ee caadiga ah wuxuu u eg yahay sidan: biraawsarka (ama macmiil kasta) wuxuu sameeyaa codsi HTTP ah oo ku socda meel gaar ah, adeeguhu wuxuu aqbalaa codsiga laakiin isla markiiba ma soo diro jawaab, xiriirka TCP-na wuu furan yahay inta adeeguhu sugayo dhacdooyin ama xog cusub.

Haddii dhacdo timaado - farriin sheekeysi, ogeysiis, ama cusbooneysiin ciyaar - server-ku isla markiiba wuu ka jawaabaa macmiilka sugaya. Macmiilku wuxuu farsameeyaa habka uu u buuxiyo lacagaha, si gaar ah, wuxuu isla markiiba soo saaraa codsi codbixin oo dheer, sidaa darteed had iyo jeer waxaa jira (ama ku dhawaad ​​​​had iyo jeer) hal xiriir oo furan oo sugaya cusbooneysiinta xigta.

Haddii wax aysan dhicin in muddo ah, server-ku ugu dambeyntii wuu dhammeeyaa codsiga ka dib marka la sameeyo xad la habeeyay, isagoo ka jawaabaya xog madhan ama culays "aan cusbooneysiin lahayn". Macmiilku wali wuxuu soo dirayaa codsi cusub marka uu helo jawaabtan waqtiga-dhammaadka ah, isagoo ilaalinaya hab-dhaqanka muddada dheer iyada oo loo marayo wicitaannada HTTP ee soo noqnoqda halkii laga isticmaali lahaa hal xiriir oo aan dhammaad lahayn.

Marka inkastoo dadku ka hadlaan xiriir codbixin oo "joogto ah" oo dheer, farsamo ahaan waa wareeg codsiyo HTTP ah oo muddo dheer jiray halkii laga isticmaali lahaa hal durdur oo aan dhammaad lahayn. Farqigaas yar wuxuu aad muhiim ugu yahay PHP, sababtoo ah mid kasta oo ka mid ah codsiyadaas badanaa wuxuu ku xiran yahay hal hab oo shaqaale PHP ah ama mawduuc noloshiisa oo dhan.

Codbixinta dheer iyo codbixinta gaaban ee PHP

Ra'yi ururin gaaban ayaa ah qaabkii ugu fududaa ee hore: macmiilku wuxuu weydiistaa server-ka xog cusub oo ku saabsan jadwal go'an, server-kuna isla markiiba wuu ka jawaabaa. Waxaa laga yaabaa inaad ku dhufato /notifications 3-5 ilbiriqsi kasta, si dhakhso ah u hubi xogta, oo soo dir wax kasta oo cusub.

Habkani waa mid si fudud loo fahmi karo laakiin aad ayuu u khasaariyaa marka ra'yi ururintu ay soo celiso "wax cusub ma jiraan". Waxaad gubtaa CPU, su'aalaha xogta iyo kharashka shabakadda iyadoo la adeegsanayo durdur joogto ah oo jawaabo badan oo madhan ah, isticmaaluhuna wali wuu arki karaa dib u dhacyada u dhexeeya dhacdo dhacaysa iyo ra'yi ururinta xigta ee la qorsheeyay.

Codbixin dheer ayaa beddesha qaabka: codsiyada HTTP oo yar, laakiin mid walba wuu sii jiraa waqti dheer inta server-ku sugayo dhacdo. Aragtida ah in la yareeyo kharashka HTTP oo la hagaajiyo jawaab celinta la dareemayo, sababtoo ah isticmaalayaashu waxay helaan cusbooneysiin isla marka ay dhacaan halkii ay sugi lahaayeen muddada ra'yi ururinta xigta.

Qabashada PHP ayaa ah in natiijada codbixinta oo aan caqli gal ahayn ay si fudud u xannibto shaqaalaha inta lagu jiro sugitaanka. Haddii aad xidhidh xidhmo furan muddo 300 ilbiriqsi ah adoo isticmaalaya wareeg sleep(), waxaad xidhaysaa hab ama mawduuc PHP ah oo haddii kale u adeegi kara codsiyo badan oo degdeg ah oo codbixin gaaban ah isla waqtigaas.

Markaad isbarbardhigto labada culays ee saaran, natiijada codbixinta ee dheer ee si xun loo hirgeliyay waxay dhab ahaantii qaban kartaa macaamiil aad uga yar kuwa isku mar la isticmaalo marka loo eego codbixinta gaaban. Tusaale ahaan, barkad PHP-FPM ah oo si fudud u adeegi karta kumanaan codbixin oo yar yar oo 5 ilbiriqsi ah ayaa laga yaabaa inay istaagto haddii isticmaale kastaa uu qabto shaqaale 300 ilbiriqsi markiiba.

Sababta qaabka codbixinta dheer ee PHP ee caadiga ah uu dhibaato u yahay

Habka PHP ee aadka loo isticmaalo ee loogu talagalay ra'yi ururinta dheer wuxuu u eg yahay "kordhinta" max_execution_time, xidh kalfadhiga, ka dibna ku wareeji a sleep() inta la hubinayo xog cusub”. Fikrad ahaan waa mid toos ah: waxaad joojinaysaa PHP inuu waqtigu kaa dhammaado goor hore, waxaad xoraynaysaa qufulka kalfadhiga si codsiyada kale ee isla isticmaaluhu u shaqeeyaan, ka dibna waxaad u codaynaysaa farriimaha cusub wareeg ilaa ~300 ilbiriqsi.

Gudaha wareeggaas, koodkaagu wuxuu noqon karaa weydii xogta kaydka ama hubi qaar ka mid ah kaydka xusuusta ku jira ee ku celcelin kasta, adigoo hakad gelinaya ilbiriqsi ama wax la mid ah sleep(1) si looga fogaado in la garaaco dhabarka dambe. Haddii aad hesho ogeysiis cusub waxaad ka baxaysaa wareegga, dir jawaabta oo jooji qoraalka; haddii aad gaarto xadka waqtiga adiga oo aan haysan xog cusub, waxaad dib u soo celinaysaa taxane madhan ama calaamad "ma jiraan wax cusbooneysiin ah".

Dhinaca macaamiisha, waxoogaa JavaScript ah (badanaa iyada oo loo marayo $.ajax() jQuery ama fetch() ee vanilla JS) si isdaba joog ah ayuu ugu yeeraa dhamaadkan. Marka biraawsarka uu helo jawaab (xog ama madhan), waxay sugeysaa dhowr ilbiriqsi ka dibna isla markiiba waxay soo dirtaa codsi kale oo dheer oo ra'yi ururin ah, kaasoo si wax ku ool ah u shaqeynaya weligiis ilaa inta isticmaaluhu ku sii jiro bogga.

In kasta oo qaabkani u shaqeeyo saldhig isticmaale oo yar, haddana si dhakhso ah ayuu u gaaraa xadka adag sababtoo ah codsi kasta oo sugitaan ah wuxuu cunaa shaqaale PHP oo dhan. Iyada oo la adeegsanayo Apache prefork ama PHP-FPM, tusaale kasta oo qoraal ah oo la xannibay wuxuu adeegsadaa RAM iyo agabyada waqtiga oo dhan oo aan shaqaynayn, taasoo la macno ah in xitaa 30-40 macaamiil oo isku mar ah la dareemi karo, 100+na ay bilaabaan inay khatar noqdaan iyada oo aan si taxaddar leh loo hagaajin.

Si ay arrimaha uga sii darto, way fududahay in si khaldan loo fahmo waxa sleep() Wicitaanku dhab ahaantii wuu shaqeynayaa. Marka laga eego dhinaca nidaamka hawlgalka, mawduucaaga PHP dhab ahaantii ma sameynayo wax wax soo saar ah inta lagu jiro hurdadaas, haddana waxaa weli loo tiriyaa shaqaale nool oo aan dib loogu isticmaali karin codsiyada kale.

Mawduucyada, hababka iyo qaabka server-ka shabakadda

Si aad runtii u fahamto dhibaatada ra'yi ururinta ee dheer ee PHP, waxaad u baahan tahay inaad eegto sida server-kaagu u maareeyo isku xirka iyo hababka shaqaalaha. Fargeetooyinka Apache ee dhaqameedku waxay abuuraan habab badan, mid walbana wuxuu maamulaa hal codsi markiiba; MPM-yada kale ama PHP-FPM waxay isticmaalaan barkado shaqaale oo leh qaab la mid ah hal codsi-shaqaale kasta.

Marka macmiil kasta oo codbixin dheer uu codsi furan ku qabto daqiiqado, si dhakhso ah ayaad u buuxinaysaa tirada shaqaalaha PHP ee xaddidan. Mid walba wuu fadhiyaa inta badan isagoo aan shaqayn, taasoo xannibaysa xusuusta oo ka hortagaysa in taraafig dheeraad ah la siiyo marka aad gaarto heerka ugu sarreeya ee la habeeyey.

Tan ku barbar dhig nidaamyada ku dhisan I/O aan xannibnayn iyo wareegyada dhacdooyinka, halkaas oo hal dun oo OS ah ay isku dhex milmi karto kumanaan isku xiran ilaa inta badan ay yihiin kuwo aan shaqaynayn. Dunidaas, "wax" oo ku jira xirmada OS ayaa runtii sugaya, laakiin ma aha geeddi-socod dhul isticmaale oo culus halkii xiriir.

Nginx waa tusaale wanaagsan oo dhinaca HTTP ah: waxay isticmaashaa qaab-dhismeed dhacdo ku salaysan si loo maareeyo tiro badan oo xiriiro furan oo leh xasuus aad u yar. Markaad PHP ku xirto Nginx adoo adeegsanaya FastCGI ama PHP-FPM, Nginx wuxuu sii wadi karaa xiriirka macaamiisha inuu noolaado wuxuuna codsiyada u diri karaa barkad cabbir go'an oo shaqaale PHP ah, taasoo ku dareysa qol neefsasho laakiin si sixir ah uma hagaajinayso xannibaadda qoraallada PHP.

Tani waa sababta maahmaahda fudud ee "codbixin kasta oo dheer ay xannibto dun" ay u tahay mid aad u fudud laakiin weli si xanuun leh ugu saxsan adeegsiyo badan oo PHP ah oo caadi ah. Haddii aadan isticmaalin waqti-socod aan isku mid ahayn ama qaab-dhismeed kale, qoraalka caadiga ah ee PHP waxaa loo sameeyaa si isku mid ah wuxuuna ku jiri doonaa shaqaale ilaa inta uu nool yahay.

Ma Node.js runtii waa mid gaar ah halkan?

Node.js waxaa badanaa loo soo qaataa xal sixir ah sababtoo ah waxay isticmaashaa wareeg dhacdo oo hal-weji leh iyo I/O aan xannibnayn sida caadiga ah. Halkii ay ka abuuri lahayd dun xiriir kasta, Node wuxuu si isku mid ah ula socdaa godad badan oo furan wuxuuna shaqeeyaa oo keliya marka xogtu timaado ama dhacdo dhacdo.

Doorashadan qaab-dhismeedka ayaa aad u fududaynaysa in la taageero tiro badan oo ah baaritaanno waqti dheer ah oo aan shaqaynayn ama isku xirka WebSocket oo ku shaqeeya qalab yar. Marka aysan jirin wax fariimo ah oo socda, wareegga dhacdada ee Node wali waa nool yahay laakiin si dhib yar ayuu u shaqeynayaa, isticmaalka RAM-na xiriir kasta waa yar yahay marka la barbar dhigo dejinta PHP-ka caadiga ah ee shaqaalaha codsi kasta.

Si kastaba ha ahaatee, PHP gebi ahaanba kama xirna ciyaartan; waxa kale oo ay leedahay maktabado casri ah oo dhacdooyinka loo yaqaan 'event wall' kuwaas oo bixiya dhaqan la mid ah oo aan xannibnayn. Mashruucyada sida ReactPHP, Amp ama Revolt waxay ku siinayaan waqti socodsiin ah oo dhacdooyinka ku salaysan gudaha PHP, kaas oo maamuli kara sockets ama hawlaha aan isku mid ahayn iyada oo aan la wareejin shaqaale xannibaya xiriir kasta.

Si kastaba ha ahaatee, dhab ahaantii, inta badan codsiyada PHP ee dhaxalka ah ayaa wali ku shaqeynaya qaab isku mid ah oo leh Apache ama PHP-FPM mana jiraan wax wareeg ah oo dhacdo ah. Barnaamijyadaas, sumcadda "Node-ku way ka fiican tahay codbixinta dheer" badanaa waa caddaalad, sababtoo ah waa inaad si weyn u dib u habayn ku sameysaa PHP-gaaga si aad u hesho miisaan la mid ah.

Intee in le'eg ayay ra'yi ururintu la barbar dhigi kartaa WebSockets iyo SSE

Saadaasha dheer waa hal dariiqo oo lagu riixo xogta server-ka una gudbiyo macmiilka; WebSockets iyo Dhacdooyinka Server-Sent (SSE) badanaa way ku habboon yihiin barnaamijyada casriga ah ee waqtiga-dhabta ah. Farsamo kastaa waxay leedahay is-weydaarsi u gaar ah marka loo eego kakanaanta, kartida iyo isticmaalka kheyraadka.

WebSockets waxay aasaastaa kanaal laba geesood ah oo u dhexeeya macmiilka iyo server-ka iyada oo loo marayo hal xiriir oo TCP ah oo la casriyeeyay. Marka is-gacan-qaadka casriyeynta uu dhammaado, labada dhinacba waxay diri karaan farriimo marka ay doonaan iyagoon ku celin cinwaanada HTTP ee kor ku xusan, taas oo ah guul weyn oo loogu talagalay barnaamijyada sheekaysiga, ciyaaraha badan-badan, dashboard-yada iyo xaalad kasta oo leh cusbooneysiin joogto ah.

Dhanka kale, SSE waxay bixisaa durdur hal dhinac ah oo dhacdooyin ah laga bilaabo server ilaa macmiil iyada oo loo marayo xiriir HTTP oo muddo dheer jiray. Waxay si fiican ugu habboon tahay ogeysiisyada, quudinta tooska ah ama kiis kasta oo server-ku u baahan yahay oo keliya inuu riixo xogta macmiilkuna si dhif ah ayuu macluumaadka dib ugu soo celiyaa wixii ka dambeeya codsiga hore.

Codbixinta dheer waxay ku fadhidaa meel dhexe: waxay ku dayataa riixitaanka server-ka iyadoo la adeegsanayo codsiyada HTTP ee soo noqnoqda, markaa wali waxaad bixinaysaa isku xirka iyo madaxa sare mar kasta. Faa'iidada ayaa ah inay la shaqeyso kaabayaasha HTTP ee caadiga ah iyo biraawsarrada caadiga ah iyada oo aan lahayn borotokoollo dheeraad ah ama taageero macaamiil oo gaar ah.

Maktabado badan oo waqtiga-dhabta ah sida Socket.IO dhab ahaantii waxay ku bilaabmaan codbixin dheer ka dibna waxay u cusbooneysiiyaan WebSockets marka ay suurtogal tahay, iyagoo u arkaya codbixin dheer inay tahay dib-u-dhac halkii ay ka ahaan lahayd habka aasaasiga ah. Taasi waxay kuu sheegaysaa wax badan oo ku saabsan hufnaanta isbarbardhigga ee codbixinta dheer ee baaxadda leh.

Tixgelinta amniga ee goobaha codbixinta ee dheer

In kasta oo codbixinta dheer ay u egtahay faahfaahin tuubooyin heer hoose ah, dhammaadka codbixinta oo dhan wali waa dusha sare ee HTTP API oo ay tahay in si sax ah loo sugo. Tallaabada ugu horreysa ee aan laga gorgortami karin waa in si gaar ah loogu adeego HTTPS si aan taraafikada loo qaban karin ama loo faragelin karin inta lagu jiro gaadiidka.

Marka laga soo tago amniga gaadiidka, waxaad u baahan tahay xaqiijin adag iyo oggolaansho dhammaan codsiyada codbixinta ee dheer. Hadday tahay inaad isticmaasho cookies-ka kalfadhiga, JWT-yada, calaamadaha API ama OAuth, adeeguhu waa inuu xaqiijiyaa in xiriir kasta oo furan uu la mid yahay isticmaale sax ah iyo in isticmaaluhu loo oggol yahay inuu helo socodka xogta la codsaday.

Qaar ka mid ah walaacyada amniga biraawsarka caadiga ah sida CSRF ayaa laga yaabaa inay ka yar yihiin khuseeyaan haddii aadan ku tiirsanayn xaqiijinta ku salaysan cookie-ka ee foomamka caadiga ah, laakiin weli waxaad u baahan tahay inaad ka fikirto macnahaaga gaarka ah. Haddii buskudku ku lug leeyahay ama haddii barta ugu dambeysa ay kicin karto isbeddellada xaaladda, markaa ilaalinta ka-hortagga CSRF (calaamadaha, buskudka goobta isku midka ah, iwm.) ayaa weli muhiim ah.

Xaqiijinta gelinta ayaa muhiim u ah ra'yi ururinta dheer sida HTTP API kale oo kasta. Cabbirrada sida aqoonsiga kanaalka, aqoonsiga isticmaalaha, shaandheeyayaasha ama shaambada waqtiga waa in la nadiifiyaa oo lagu xaqiijiyaa server-ka si looga fogaado duritaanka SQL, marin-u-helka wadada ama cilladaha macquulka ah ee daadin kara xogta u dhaxaysa isticmaalayaasha.

Ra'yi ururin dheer ayaa sidoo kale albaabka u furaysa xaalado diidmo adeeg ah sababtoo ah xiriirku si ula kac ah ayuu u cimri dheer yahay oo qiimo ahaan waa qaali PHP. Waa inaad fulisaa xaddidaadyo macquul ah oo ku saabsan qiimaha IP-ga ama akoon kasta, xaddid tirada isku xirnaanta isku mar ah oo aad ku dabaqdaa waqtiyada isku xirka si loo xakameeyo isticmaalka kheyraadka.

La socodka joogtada ah, diiwaangelinta iyo hubinta amniga ee xilliyeedka ayaa ah lakabka ugu dambeeya ee difaaca. Diiwaan gelinta khaladaadka codbixinta ee dheer, cilladaha xaqiijinta iyo qaababka xiriirka aan caadiga ahayn waxay ku siinayaan xogta aad u baahan tahay si aad u ogaato xadgudubka, dib-u-celinta ama dhibaatooyinka habaynta ka hor inta aysan ku qarxin taraafikada dhabta ah.

Maareynta khaladaadka iyo adkeysiga codbixinta dheer

Sababtoo ah ra'yi ururinta dheer waxay ku tiirsan tahay xiriiro badan oo waara, maaraynta khaladaadka adag ayaa muhiim u ah si looga fogaado guuldarrooyinka soo noqnoqda ama macaamiisha xayiran. Ku bilow inaad dejiso waqti-joojin macquul ah oo dhinaca server-ka ah codsi kasta si dhacdo maqan aysan uga tegin xiriirrada weligood sii jira.

Marka waqtigaas la gaaro iyada oo aan la helin xog cusub, adeeguhu waa inuu ku jawaabaa culays cad oo si fiican loo qeexay. Taasi waxay noqon kartaa liis madhan, qaab-dhismeed JSON gaar ah ama xaalad HTTP 204 ah, laakiin waa inay noqotaa mid la saadaalin karo si macmiilku u kala saaro "xog aan weli la hayn" iyo khaladaadka dhabta ah.

Dhibaatooyinka dhabta ah ee dhinaca server-ka - maqnaanshaha xogta, ka-reebitaanka gudaha, xuduudaha aan sax ahayn - waa muhiim in la diro koodhadhka xaaladda HTTP ee saxda ah. Koodhadhka sida 500 (qaladka server-ka), 404 (kheyraadka lama helin) ama 401/403 (dhibaatooyinka xaqiijinta) waxay u oggolaanayaan macmiilka inuu si habboon uga falceliyo halkii uu si indho la'aan ah dib ugu tijaabin lahaa.

Dhinaca macaamiisha, macquulka dib-u-tijaabinta otomaatiga ah oo leh dib-u-celin dheeraad ah ayaa ku dhawaad ​​​​waa qasab in la sameeyo ra'yi ururin dheer. Haddii codsigu ku guuldareysto ama uu ku dhammaado si aan la filayn, macmiilku waa inuu sugaa xoogaa ka hor inta uusan dirin kan xiga, oo uu kordhiyaa sugitaanka guuldarrooyinka soo noqnoqda si looga fogaado in la shaabadeeyo dhabarka dambe ee dhibka badan.

Hubinta caafimaadka iyo maaraynta xaaladda isku xirka ayaa sidoo kale qayb ka ah naqshad wanaagsan. Haddii macmiilku ogaado khasaare shabakadeed ama khaladaad server oo soo noqnoqda, wuxuu u beddeli karaa hab dib-u-dhac fudud sida codbixin gaaban ama wuxuu joojin karaa sifooyinka waqtiga-dhabta ah isagoo soo bandhigaya farriin saaxiibtinimo leh oo loo dirayo isticmaalaha.

Ugu dambeyntii, dhammaan dhaqankan waa in la arkaa: khaladaadka diiwaanka, waqtiyada joojinta iyo qaababka dib-u-tijaabinta, ka dibna isticmaal diiwaannadaas iyo cabbirradaas si aad u hagaajiso waqtiyada joojinta, istaraatiijiyadaha dib-u-dhaca iyo awoodda kaabayaasha dhaqaalaha. Ra'yi ururin dheer oo si aamusnaan ah u fashilantay waa mid ka mid ah siyaabaha ugu dhaqsaha badan ee lagu heli karo dadka isticmaala xanaaqa iyo madax-xanuunka waxqabadka aan la ogaan.

Istaraatiijiyadaha miisaanka, waxqabadka iyo hagaajinta

Marka laga reebo sanduuqa, ra'yi ururinta PHP ee aan caadiga ahayn si fiican uma miisaanto, laakiin waxaa jira badhammo badan oo aad rogi karto ka hor intaadan gebi ahaanba ka tanaasulin. Hadafku waa in la yareeyo kharashka isku xirka iyo in si wanaagsan loo isticmaalo kaabayaasha dhaqaalahaaga.

Mid ka mid ah xeeladaha ugu waxtarka badan waa in la isku duwo jawaabaha halkii laga diri lahaa hal farriin jawaab kasta oo HTTP ah. Haddii dhacdooyin badan ay yimaadaan inta lagu jiro hal daaqad oo codbixin dheer ah, isku dar hal culays si aad u yareyso kharashka HTTP oo aad u yareyso tirada dib-u-xiriirka.

Cadaadisku wuxuu sidoo kale sameyn karaa farqi weyn, gaar ahaan culeyska JSON ee xad-dhaafka ah. Awoodsiinta Gzip (ama wax la mid ah) ee server-ka shabakadda ama heerka PHP waxay yareysaa cabbirrada jawaabta, waxay dedejineysaa gaarsiinta waxayna yareysaa isticmaalka bandwidth-ka, taas oo lagu dareemi karo miisaanka.

Kaydinta waa in aan la iska indho tirin: lakab kayd ah oo gaar ah ayaa nuugi kara shaqo badan oo soo noqnoqda oo haddii kale ku dhici lahayd xogtaada ama adeegyada yaryar. Haddii isticmaaleyaal badan ay iska diiwaan galiyaan durdurro la mid ah, sawirro kaydsan ama isku-darka la xisaabiyay ayaa si weyn u yareyn kara waqtiga habaynta codsi kasta.

Dhinaca isku xirka, isku-darka iyo dib-u-isticmaalka ayaa muhiim u ah ku-tiirsanaanta dambe sida kaydka xogta ama API-yada dibadda. Haynta isku xirka xogta oo furan oo dib loo isticmaalo halkii dib loogu xiri lahaa ra'yi ururin kasta waxay gooyn kartaa dib u dhaca iyo culeyska CPU, gaar ahaan marka ay jiraan isku-dhacyo badan.

Xaddidaadda heerka iyo joojinta ayaa u adeega laba door: waxay ka ilaaliyaan kaabayaasha dhaqaalahaaga xadgudubka waxayna gacan ka geystaan ​​​​in waxqabadka la saadaalin karo. Adigoo xaddidaya inta jeer ee isticmaale ama IP-ga la siiyay uu furi karo xiriirro codbixin oo dheer, waxaad yareyneysaa khatarta daalka kheyraadka waxaadna abuureysaa meel loogu talagalay isticmaalka cadaalad ah.

Isku dheelitirka culayska ee server-yada codsiyada badan waa kabaal kale oo awood leh. Qaybinta codsiyada codbixinta ee dheer ee dhammaan qanjidhada waxay ka hortagtaa in mashiin kasta uu noqdo meel kulul, gaar ahaan marka lagu daro kalfadhiyada dhegdheg leh ama dukaamada gobolka ee dibadda ee rukhsadaha isticmaalaha.

Shaqaalaha habaynta aan isku mid ahayn iyo kuwa asalka ah waa inay wax ka qabtaan wax kasta oo aan si adag qayb uga ahayn wareegga "sug dhacdada, dir dhacdada". Safafka fariimaha, shaqaalaha shaqada iyo nidaamyada la qaybiyey waxay u oggolaanayaan bartaada codbixinta ee dheer inay ahaato mid khafiif ah oo jawaab celin leh halka shaqada culus ay ka dhacdo meelo kale.

Xidhiidhka ku habboon iyo waqtiyada qoraalka ayaa ah furayaasha badbaadada ugu dambeeya. Xidh xiriiriyeyaasha aan shaqaynayn ama xayiran ka dib muddo macquul ah, hayso max_execution_time iyadoo la raacayo macquulkaaga codbixinta ee dheer oo si cad u sheeg inta loo ogol yahay labadaba server-ka iyo macmiilka labadaba inay sugaan.

Talooyin ku saabsan hirgelinta PHP-ga gaarka ah ee loogu talagalay codbixinta dheer

Marka la hirgelinayo ra'yi ururin dheer oo ku saabsan PHP-ga caadiga ah, dhowr faahfaahin oo habayn iyo codeyn ah ayaa farqi weyn u sameeya dhaqanka iyo xasilloonida. Mid ka mid ah kuwa ugu waaweyn ayaa wacaya session_write_close() sida ugu dhaqsaha badan ee suurtogalka ah ee qoraalka.

Qalabka caadiga ah ee PHP wuxuu adeegsadaa qufullada faylasha, taasoo la macno ah codsi ka dhigaya fadhiga mid furan wuxuu xannibi karaa codsiyada kale ee isla isticmaalaha. Xidhitaanka kalfadhiga si loo qoro sii-deynno xiran iyadoo weli loo oggolaanayo helitaanka akhriska xogta kalfadhiga, si codsiyada dheeraadka ah ee isbarbar socda aysan safka uga gelin ra'yi ururinta dheer.

Caadi ahaan waxaad u baahan doontaa inaad kor u qaaddo ama aad beddesho max_execution_time xaddid si loogu oggolaado qoraallada inay shaqeeyaan 60, 120 ama 300 ilbiriqsi. Haddii aan la hagaajin, PHP waxay joojin kartaa qoraalka ka hor inta uusan dhammaan wareegga codbixinta ee dheer, taasoo horseedi karta jahwareer ku yimaada khaladaadka dhinaca macaamiisha ama jawaabaha nus-dhammaadka ah.

Gudaha wareegga, aad uga taxaddar inta jeer ee aad ku dhufato xogta ama kuwa kale ee gadaal ka riixaya. Wareeg adag oo su'aalo ka weydiiya xogta 100-kii milis ilbiriqsi kasta ayaa dhalaalin doona DB-gaaga culays xitaa dhexdhexaad ah; soo bandhig hurdo macquul ah, kaydin ama kiciyayaal qaab riix ah si nidaamka looga dhigo mid jawaab celin leh.

Waxa kale oo mudan in laga fikiro qorista iyo cabbirrada gudaha wareeggan. La soco inta jeer ee aad ka baxdo sababtoo ah waqti-joojin iyo xogta dhabta ah, inta ay le'eg tahay celceliska sugitaanka iyo inta jeer ee ra'yi ururin dheer oo isku mar ah oo aad bixiso, ka dibna dib ugu celi tirooyinkaas qorsheynta awoodda iyo hagaajinta koodhka.

Intaas oo dhan, maskaxda ku hay in xannibaad kasta oo qoraalka PHP ah ay u sawirayso shaqaale, sidaa darteed yaraynta wareegyada, hurdada iyo shaqada aan loo baahnayn waa lama huraan haddii aad rabto inaad taageerto in ka badan tiro yar oo isticmaaleyaal ah. Qalabka gudaha ama barnaamijyada taraafikada yar yar tani waxay noqon kartaa mid aad u fiican; wax kasta oo ka weyn, waxaad u baahan doontaa qaab-dhismeed aad u adag.

Qaababka dhabta ah, maktabadaha iyo beddelka

Horumariyayaal badan ayaa ogaanaya ra'yi ururin dheer iyada oo loo marayo demos yar yar: qoraalka PHP wuxuu daawanayaa faylka qoraalka ah, marka aad tafatirto faylkaas, isbeddelku isla markiiba ayuu ka soo muuqanayaa biraawsarka. Kani waa qaab maskaxeed oo aad u fiican: kood fudud, dhaqan cad iyo jawaab celin degdeg ah.

Xaaladda wax soo saarka, tusaalahaas aan muhiimka ahayn si dhakhso ah ayuu u galaa xadka aan ka wada hadalnay, laakiin wali wuxuu muujinayaa hab-maamuuska aasaasiga ah. Macmiilka JavaScript wuxuu soo diraa codsi AJAX ah, qoraalka PHP wuxuu xannibaa ilaa faylka uu isbeddelo ama uu waqtigu dhammaado, ka dibna wuu ka jawaabaa oo ku celiyaa.

Gaar ahaan nidaamyada deegaanka PHP, waxaad ka heli doontaa dhowr qaab-dhismeed iyo qaabab oo isku dayaya inay tan ka dhigaan mid la maarayn karo. Tusaale ahaan, Laravel, waxay horumariyayaasha ku riixdaa inay tabiyaan dhacdooyinka iyagoo adeegsanaya WebSockets ama adeegyada la maamulo, inkastoo aad wali gacanta ku xiri karto waddooyinka codbixinta ee dhaadheer.

Marka laga reebo PHP, waxaa jira qaab-dhismeedyo qaangaar ah oo ku dhawaad ​​​​luqad kasta ah oo si toos ah u taageera ra'yi ururin dheer ama bixiya aragtiyo wanaagsan oo ku saabsan isgaarsiinta waqtiga-dhabta ah. Node.js oo leh Express.js ama Socket.IO, Python oo leh Flask ama Django Channels, Java oo leh Spring, Ruby on Rails, iyo .NET oo leh ASP.NET SignalR dhammaantood waa xulashooyin caan ah.

Qaar ka mid ah goobaha qaar ayaa kaa qarinaya dhibaatada cabbiraadda iyo isku xirka oo dhan. Adeegyada waqtiga-dhabta ah ee la maamulo - oo ay ku jiraan kuwa diiradda saaraya fariimaha baarka/hoosaadka iyo joogitaanka - waxay bixiyaan SDKs macaamiisha, sirta, xakamaynta marin u helka ee si fiican loo habeeyay iyo kaabayaasha caalamiga ah si ay u maareeyaan malaayiin isku xiran si aadan u cusboonaysiin giraangiraha.

Dunida PHP, badanaa waxaad ka heli kartaa labada adduun ee ugu fiican adiga oo isku daraya macquulka codsigaaga jira iyo adeeg waqtiga-dhabta ah. PHP waxay mas'uul ka tahay xeerarka ganacsiga, adkeysiga iyo API-yada, halka madal dibadda ah ay maamusho isku xirka muddada dheer, taageereyaasha iyo gaarsiinta waqtiga dhabta ah ee codbixinta dheer, SSE ama WebSockets sida ku habboon.

Nidaamyada kale ee deegaanka waxay ku calaamadeeyaan istaraatiijiyadahan waqtiga-dhabta ah magacyo sida Comet, Reverse Ajax, HTTP Streaming, Pushlet ama AJAX ra'yi ururin dheer. Hoostooda, dhammaantood waa kala duwanaansho fikrad isku mid ah: u rogidda hab-raaca codsiga/jawaabta aasaasiga ah wax u muuqda mid ku salaysan riixitaan.

Horumariyayaasha PHP ee la halgamaya dhibaatooyinka codbixinta ee muddada dheer, furaha ayaa ah inaad si daacad ah u qiimeyso baahiyahaaga isku-dhafka ah, jawigaaga martigelinta iyo inta ay le'eg tahay dhibka aad diyaar u tahay inaad qaadato. Mararka qaar wareeg yar oo xannibaad ah ayaa ku filan; mararka kale waxaa fiican inaad qaadato maktabad wareeg dhacdo ah, inaad riixdo oo aad u wareejiso adeeg gaar ah ama aad qayb ka mid ah kaydkaaga u beddesho tiknoolajiyad loo dhisay tiro badan oo xiriiro furan ah.

Markaad isku geyso dhammaan qaybahan - farsamada HTTP, qaabka fulinta PHP, qaab-dhismeedka server-ka, amniga, maaraynta khaladaadka iyo qaababka naqshadeynta la miisaami karo - ra'yi ururinta dheer waxay joojineysaa inay noqoto dilaaga waxqabadka qarsoon waxayna noqotaa qalab kale oo aad si ula kac ah u isticmaali karto meel macquul ah.

optimización de consultas MySQL
Maqaalka laxiriira:
Guía completa de optimización de consultas MySQL
Related posts: