№2 Dars — Yii ning yordamchi funksiyalari bilan ishlash
Biz odatda kattagina ish qilayotganimizda bir hil funksiyalar yozishimizga tog`ri keladi va bu ishni qayta qayta takrorlanishiga duch kelamiz. Misol uchun biror bir joyda 2 ta DateTime ning o`zaro ayirish masalasi bo`lsin. Bu ishni bir nechta joyda ishlatiladigan bo`lsa unda xar bir shu ishni qiladigan funksiyani yozib ketaveramiz. Uning o`rniga bir yordamchi funksiya sifatida bir joyda saqlasak o`sha funksiyani kerak bo`lganda o`sha nom ostida chaqirishimiz mumkin bo`ladi. Bunda funksiyani har safar yozib o`tirish shart bo`lmaydi. Bunda har bitta dasturlash tilining bunday imkoniyati mavjud. Shu kabi yii da ham bu imkoniyat mavjud. Keling aslida funksiyani qanday yaratish va undan qanday foydalanish haqida gaplashsak. Yordamchi classning ko`rinishi
Ushbu holat Classning standart ko`rinishi: Bunda ushbu faylni»protected/components/MyClass.php»
Ko`rinishdagi joyga saqlash kerak bo`ladi. Ya`ni «components» papkasining ichiga.
Yordamchi funksiya ushbu ko`rinishda elon qilinadi
Bunda birinchi bo`lib class nomi e`lon qilinmoqdi keyin ehtiyojdagi funksiya yozilmoqda. Shu yordamchi funksiyani chaqirish yo`li quyidagicha
Ya`ni class nomi , funksiya va funksiyaga beriladigan qiymat.
Endi yordamchi fayl e`lon qilish va uni ishlatish usulini bir kichik misol bilan ko`rib chiqamiz.
Yordamchi fayl nima? Yordamchi fayl bu helpers.php nomi ostida yaratiladigan fayl bo`lib unda bir qancha funksiyalar yozishingiz mumkin bo`ladi.
«protected/components/helpers.php»
function time_difference($t1, $t2)
{
list($hh1,$mm1,$ss1) = explode(‘:’,$t1);
list($hh2,$mm2,$ss2) = explode(‘:’,$t2);
$time2 = mktime((int)$hh2, (int)$mm2, (int)$ss2);
$time1 = mktime((int)$hh1, (int)$mm1, (int)$ss1);
$duration = $time2 >= $time1? $time2 — $time1: $time2 + 86400 — $time1;
$hh3 = floor($duration / 3600);
$mm3 = floor(($duration — $hh3 * 3600) / 60);
$ss3 = $duration — 3600 * $hh3 — 60 * $mm3;
$result = date(‘H:i:s’, mktime($hh3, $mm3, $ss3));
return $result;
}
Ko`rib turganingizdek bu yerda class nomi yo`q shunchaki funksiya yaratilib ketmoqda. Bu holatda hozir biz ikkita vaqt orasidagi vaqtni topmoqdamiz
Bu faylni ham odatdagidek «components» papkasiga tashlanadi va nomini «helpers.php» saqlash kerak bo`ladi. Endi bu funksiyani quyidagicha chaqiriladi.
Ko`rib turganingizdek bu yerda class nomi yo`q shunchaki funksiya yaratilib ketmoqda. Bu holatda hozir biz ikkita vaqt orasidagi vaqtni topmoqdamiz
Bu faylni ham odatdagidek «components» papkasiga tashlanadi va nomini «helpers.php» saqlash kerak bo`ladi. Endi bu funksiyani quyidagicha chaqiriladi.
Bu ishimiz xozirda to`g`ridan to`g`ri ishlamaydi. Chunki bu funksiyani qayerdan olishni bilmaydi
Shuning uchun quyidagicha ish qilamiz:
Config papkamizdagi main.php faylimizga yuqoridagi yo`lni ko`rsatib qo`yishimiz kerak bo`ladi.
Manba:
Web Dasturlash
№2 Dars — Yii ning yordamchi funksiyalari bilan ishlash