Referat guruh: 010-20 Bajardi: O’rinov Sarvarbek Toshkent-2022


PHP boshqaruvchisi (Xulq-atvori)



Download 273,17 Kb.
Pdf ko'rish
bet4/5
Sana30.06.2022
Hajmi273,17 Kb.
#718645
TuriReferat
1   2   3   4   5
Bog'liq
Web dasturlashga kirish

PHP boshqaruvchisi (Xulq-atvori)
PHP kontrollerlari biz index.php orqali yuborgan foydalanuvchi so'rovlarini qabul 
qilishadi va ularga muvofiq modelni moslashtirishadi. Php dasturlari boshqariladi deb 
aytish yanada to'g'ri. 
PHP yuborish
Ko'rinish modeldagi o'zgarishlarni kuzatadi va dasturning php interfeysini yaratadi 
yoki o'zgartiradi. 
Ma'lumotlar ro'yxati 
ismingiz?\u003e 
familiyasi?\u003e 
Bu qanday ishlaydiPhpMVC shablonimi?


Foydalanuvchi kerakli url-ga kirganda, ko'rinishi va modeliga tegishli mos keladigan 
kontrolör tanlanadi va ma'lumotlar ko'rsatiladi. Boshqacha aytganda, mvc-dagi 
boshqaruvchi - bu model va ko'rinish o'rtasidagi bog'liqlik. 
PHP dasturini yaratishda MVC shablonining afzalliklari
Yuqorida aytib o'tilganidek, bu birinchi navbatda php sayt yaratuvchilarini bo'limlarga 
ajratishdir. Shuningdek, agar katta loyiha yaratilsa, php dasturining tezligi oshadi. Php 
dasturchisining o'zi haqida gap ketganda, bu php kodini to'g'ri tuzishdir (hamma 
narsani o'z joyida tushunish osonroq). 
Ko'pchilik bitta vazifa bilan ishlash uchun loyihani yozishni boshlaydi, bu ko'p 
foydalanuvchilarni boshqarish tizimiga aylanishi mumkinligini anglatmaydi, aytaylik, 
tarkib yoki Xudo taqiqlagan, ishlab chiqarish. Va hamma narsa ajoyib va 
\u200b\u200bsalqin bo'lib ko'rinadi, yozilgan kod butunlay baliqlar va qattiq kodlardan 
iborat ekanligini tushunishni boshlamaguningizcha hamma narsa ishlaydi. Kod, ba'zida 
hatto o'qib bo'lmaydigan tartib, so'rovlar va baliqlar bilan aralashtirilgan. Favqulodda 
muammo mavjud: yangi xususiyatlarni qo'shganda, siz "bu erda nima yozilgan edi?" 
Ni eslab, uzoq vaqt davomida ushbu kod bilan aralashishingiz kerak. va o'zingizni 
o'tmishda la'natlang. 
Ehtimol, siz dizayn naqshlari haqida eshitgansiz va hatto ushbu ajoyib kitoblardan 
yozgansiz: 

E. Gamma, R. Xelm, R. Jonson, J. Vlissidlar "Ob'ektiv dizayn texnikasi. Dizayn 
naqshlari ”; 

M. Fouller "Korporativ dasturiy ta'minot arxitekturasi". 
Ko'pchilik, ulkan qo'llanmalar va hujjatlardan qo'rqmagan holda, har qanday 
zamonaviy ramkalarni o'rganishga harakat qilishdi va tushunish qiyinligiga duch 
kelishdi (bir-biri bilan chambarchas bog'langan ko'plab me'moriy tushunchalar 
mavjudligi sababli) zamonaviy vositalarni o'rganishni va "uzoq quti" da qo'llashni 
keyinga qoldirdilar. 
Ushbu maqola birinchi navbatda yangi boshlanuvchilar uchun foydali bo'ladi. Qanday 
bo'lmasin, bir necha soat ichida siz barcha zamonaviy veb-ramkalar ostidagi MVC 
naqshini amalga oshirish to'g'risida fikrga ega bo'lasiz, va buni qanday amalga oshirish 
haqida batafsil ma'lumot olish uchun "ovqat" olasiz. Maqolaning oxirida foydali 
havolalar to'plami mavjud bo'lib, ular sizga (MVC-dan tashqari) veb-ramkalar nimadan 
iboratligini va qanday ishlashini aniqlashga yordam beradi. 


Qattiq yadroli PHP dasturchilari ushbu maqolada o'zlari uchun yangilik topishlari 
dargumon, ammo ularning asosiy matndagi sharhlari va izohlari juda foydali bo'ladi! 
Chunki nazariyasiz, amaliyot mumkin emas, va amaliyotsiz, nazariya befoyda, keyin 
dastlab ozgina nazariya bo'ladi va keyin biz amaliyotga o'tamiz. Agar siz MVC 
tushunchasi bilan allaqachon tanish bo'lsangiz, nazariya bo'limini o'tkazib 
yuborishingiz va to'g'ridan-to'g'ri amaliyotga o'tishingiz mumkin. 
1. Nazariya 
MVC modeli dastur tuzilishini yaratishning oddiy usulini tavsiflaydi, uning maqsadi 
biznes mantig'ini foydalanuvchi interfeysidan ajratishdir. Natijada, dasturni o'lchash, 
sinash, saqlash osonroq va albatta amalga oshiriladi. 
MVC shablonining kontseptual sxemasini ko'rib chiqing (mening fikrimcha, bu men 
ko'rgan eng muvaffaqiyatli sxema): 
MVC arxitekturasida model ma'lumotlar va biznes mantiqiy qoidalarini ta'minlaydi, 
ko'rinish foydalanuvchi interfeysi uchun javobgar va nazoratchi model va ko'rinish 
o'rtasidagi o'zaro ta'sirni ta'minlaydi. 
MVC dasturining odatiy ketma-ketligini quyidagicha ta'riflash mumkin: 
1.
Foydalanuvchi veb-resursga kirganda, initsializatsiya skripti dasturning nusxasini 
yaratadi 
va 
uni 
bajarish 
uchun 
ishga 
tushiradi.
Bu ko'rinishni namoyish etadi, deylik saytning asosiy sahifasida. 
2.
Ilova foydalanuvchidan so'rovni qabul qiladi va so'ralgan boshqaruvchi va harakatni 
aniqlaydi. Asosiy sahifa holatida odatiy amal bajariladi (
indeks
). 
3.
Ilova kontrolör nusxasini yaratadi va harakat usulini ishga tushiradi,
masalan, ma'lumotlar bazasida ma'lumotni o'qiydigan namunaviy qo'ng'iroqlar 
mavjud. 
4.
Shundan so'ng, harakat modeldan olingan ma'lumotlar bilan ko'rinishni hosil qiladi va 
natijani foydalanuvchiga namoyish etadi. 
Model
- ilovaning biznes mantig'ini o'z ichiga oladi va ularni tanlash usullari (bu 
ORM usullari bo'lishi mumkin), ishlov berish (masalan, tasdiqlash qoidalari) va aniq 
ma'lumotlarni taqdim etish kiradi, bu esa uni juda qalin qiladi, bu juda normal holat.
Model foydalanuvchi bilan bevosita aloqada bo'lmasligi kerak. Foydalanuvchi so'rovi 
bilan bog'liq bo'lgan barcha parametrlar kontrolörde qayta ishlanishi kerak.
Model HTML yoki boshqa displey kodini yaratmasligi kerak, bu foydalanuvchi 
ehtiyojlariga qarab farq qilishi mumkin. Bunday kod ko'rinishda ko'rib chiqilishi 
kerak.
Xuddi shu model, masalan: foydalanuvchini autentifikatsiya qilish modelidan 


foydalanuvchida ham, dasturning ma'muriy qismida ham foydalanish mumkin. Bunday 
holda, siz umumiy kodni alohida sinfga olib, merosxo'rlarda amaliy dasturlarni 
aniqlash orqali undan meros olishingiz mumkin. 
Ko'rish - tekshirgich va modeldan olingan ma'lumotlarning tashqi displeyini belgilash 
uchun 
ishlatiladi.
Ko'rishlar HTML-ni belgilaydi va ma'lumotlarni aylantirish, formatlash va namoyish 
qilish 
uchun 
kichik 
PHP-kod 
qo'shimchalarini 
o'z 
ichiga 
oladi.
Ma'lumotlar bazasiga bevosita kirmasligi kerak. Buni model tomonidan amalga 
oshirish 
kerak.
Foydalanuvchi so'rovidan olingan ma'lumotlar bilan ishlamaslik kerak. Ushbu vazifa 
nazoratchi 
tomonidan 
bajarilishi 
kerak.
Chiqarishga tayyor ma'lumotlarni olish uchun kontrolör yoki modellarning 
xususiyatlari 
va 
usullariga 
to'g'ridan-to'g'ri 
kirish 
mumkin.
Ko'rishlar odatda barcha sahifalar uchun umumiy bo'lgan belgilar (masalan, sarlavha 
va pastki nomi) va shablonning modeldan ma'lumotlarni chiqarish yoki ma'lumotlarni 
kiritish shakllarini namoyish qilish uchun ishlatiladigan qismlarini o'z ichiga olgan 
umumiy shablonga bo'linadi. 
Nazoratchi - ishchi dasturga modellar, ko'rinishlar va boshqa qismlarni bog'laydigan 
biriktiruvchi aloqa. Nazoratchi foydalanuvchi so'rovlarini ko'rib chiqish uchun 
javobgardir. Tekshirish moslamasida SQL so'rovlari bo'lmasligi kerak. Ular eng yaxshi 
modellarda saqlanadi. Tekshirish moslamasida HTML yoki boshqa belgilar bo'lmasligi 
kerak. 
Uni 
turlarga 
kiritish 
kerak.
Yaxshi ishlab chiqilgan MVC dasturida kontrolörler odatda juda nozik va bir necha 
o'nlab kod satrlarini o'z ichiga oladi. Xo'sh, siz Joomla CMS-dagi ahmoq yog 
'nazoratchilari (SFC) haqida gapira olmaysiz. Tekshirish moslamasining mantig'i juda 
odatiy 
va 
uning 
asosiy 
qismi 
asosiy 
sinflarda 
amalga 
oshiriladi.
Modellar, aksincha, juda qalin va ma'lumotlarni qayta ishlash bilan bog'liq kodlarning 
ko'pini o'z ichiga oladi, chunki Ulardagi ma'lumotlar tuzilishi va biznes mantiqlari 
odatda ma'lum bir dastur uchun juda o'ziga xosdir. 
1.1. Old kontroller va sahifa boshqaruvchisi 
Ko'pgina hollarda foydalanuvchining veb-ilova bilan o'zaro aloqasi havolalarni bosish 
orqali amalga oshiriladi. Endi brauzerning manzil satriga qarang - siz ushbu havoladan 
ushbu matnni oldingiz. Boshqa havolalar, masalan, ushbu sahifaning o'ng tomonida, 
sizga har xil tarkib beriladi. Shunday qilib, havola veb-ilovaga ma'lum bir buyruqni 
anglatadi. 


Umid qilamanki, siz allaqachon turli saytlarda manzillar panelini yaratish uchun 
mutlaqo boshqacha formatlarga ega bo'lishini payqadingiz. Har bir format veb-
ilovaning arxitekturasini namoyish qilishi mumkin. Garchi bu har doim ham shunday 
bo'lmasa-da, aksariyat hollarda bu aniq dalil. 
Bir nechta matn va foydalanuvchi profilini ko'rsatadigan manzil panelining ikkita 
variantini ko'rib chiqing. 
Birinchi variant: 
1.
www.example.com/article.php?id\u003d3 
2.
www.example.com/user.php?id\u003d4 
Bu erda har bir skript ma'lum bir buyruqning bajarilishi uchun javobgardir. 
Ikkinchi variant: 
1.
www.example.com/index.php?article\u003d3 
2.
www.example.com/index.php?user\u003d4 
Va bu erda barcha qo'ng'iroqlar bitta stsenariy bo'yicha amalga oshiriladiindeks.php. 
Siz phpBB dvigateli bilan forumlarda ko'plab o'zaro ta'sirlashuv nuqtalari bilan 
yondashuvni kuzatishingiz mumkin. Forumni ko'rish skript orqali amalga 
oshiriladi viewforum.phpmavzuni ko'rishviewtopic.php va hokazo. Bitta jismoniy 
skript fayli orqali kirish imkoniga ega bo'lgan ikkinchi yondoshishni, mening barcha 
CMS MODX-da kuzatish mumkin, bu erda barcha qo'ng'iroqlar o'tadiindeks.php. 
Ushbu ikki yondashuv butunlay boshqacha. Birinchisi, sahifa boshqaruvchisi 
shabloniga (Page Controller) xosdir, ikkinchisi esa so'rovlarni boshqarish namunasi 
(Front Controller) yordamida amalga oshiriladi. Sahifa boshqaruvchisi juda oddiy 
mantiqqa ega bo'lgan saytlar uchun juda yaxshi. O'z navbatida, so'rovlar 
boshqaruvchisi so'rovlarni qayta ishlash uchun barcha harakatlarni bir joyda 
birlashtiradi, bu unga qo'shimcha funktsiyalarni beradi, buning natijasida odatda sahifa 
boshqaruvchisi tomonidan hal qilinganidan ko'ra qiyinroq vazifalarni bajarish mumkin. 
Men sahifa boshqaruvchisini amalga oshirish tafsilotlariga kirmayman, faqat shuni 
aytamanki, amaliy qismda u aniq buyurtma nazorati (ba'zi bir o'xshashlik) ishlab 
chiqiladi. 
1.2. URL-manzilni yo'naltirish 
URL-yo'riqnomasi ilovani amaldagi fayllarga mos kelmaydigan URL-larning 
so'rovlarini qabul qilish, shuningdek foydalanuvchilar uchun semantik ma'noga ega va 
qidiruv tizimini optimallashtirishni afzal ko'rgan CNC-larni sozlash imkonini beradi. 


Masalan, mulohaza shaklini ko'rsatadigan oddiy sahifada, URL quyidagicha ko'rinishi 
mumkin:
http://www.example.com/contacts.php?action\u003dfeedback 
Bu 
holda 
taxminiy 
qayta 
ishlash 
kodi:
switch ($ _GET ["action"]) (case "about": request_once ("about.php"); // sahifa "Biz 
haqimizda" sindirish; case "contacts": request_once ("contacts.php"); // Aloqa 
sahifasi sindirish; case "feedback": request_once ("feedback.php"); // sahifa "Teskari 
aloqa" sindirish; sukut bo'yicha: request_once ("sahifa404.php"); // "404" tanaffus; )
Menimcha, deyarli hamma buni oldin qilgan. 
URL-manzilni boshqarish vositasidan foydalanib, xuddi shu ma'lumotni aks ettirish 
uchun quyidagi so'rovlarni olish uchun dasturni sozlashingiz mumkin:
http://www.example.com/contacts/feedback 
Bu erda kontaktlar bu kontroller, va geribildirim bu aloqa shaklini ko'rsatadigan 
kontaktlarni boshqarish usuli va boshqalar. Biz ushbu masalaga amaliy qismda 
qaytamiz. 
Shuni ham bilish kerakki, ko'pgina veb-ramkalarning yo'riqchilari o'zboshimchalik 
bilan URL manzillarini yaratishga imkon beradi (URL har bir qismi nimani 
anglatishini 
aniqlang) 
va 
ularni 
qayta 
ishlash 
qoidalari.
Endi biz amaliyotga o'tish uchun etarli nazariy bilimga egamiz. 
2. Amaliyot 
Birinchidan, quyidagi fayl va papka tuzilishini yarating: 
Oldinga qarab, Model, View va Controller asosiy sinflari yadro papkasida saqlanadi 
deb 
aytaman.
Ularning avlodlari boshqaruv direktorlarida, modellarda va qarashlarda saqlanadi. 
Fayl indeks.php Ilovada ishlayotgan nuqta. Fayl bootstrap.php dasturni yuklab 
olishni boshlash, barcha kerakli modullarni ulash va hk. 
Biz ketma-ket boramiz; index.php faylini oching va quyidagi kod bilan to'ldiring:
ini_set ("display_errors", 1); demand_once "application / bootstrap.php";
Bu erda savollar paydo bo'lmasligi kerak. 
Keyinchalik, 
to'g'ridan-to'g'ri 
xalidaga 
boramiz bootstrap.php: 
request_once "core / model.php"; demand_once "core / view.php"; request_once "core 
/ Controller.php"; demand_once "core / train.php"; Yo'l: start (); // yo'riqnoma ishga 
tushirish


Birinchi uchta qatorda yadro fayllari mavjud emas. So'nggi satrlarga marshrutizator 
klassi bilan fayl kiradi va statik boshlash usulini chaqirib ishga tushiramiz. 
2.1. URL Router dasturini amalga oshirish 
Hozircha, MVC naqshini bajarishdan chetga chiqamiz va marshrutlashni amalga 
oshiramiz. Biz qilishimiz kerak bo'lgan birinchi qadam bu quyidagi kodni 
yozishdir.htaccess: 
Yo'nalishni alohida faylga joylashtiramiz marshrut.php asosiy katalogga. Ushbu 
faylda biz kontrollerlarning usullarini ishlatadigan Route klassini tasvirlaymiz, bu o'z 
navbatida sahifalarning ko'rinishini keltirib chiqaradi. 
Funktsiyadan foydalanish 

Download 273,17 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish