№2 Dars — Yii ning yordamchi funksiyalari bilan ishlash

№2 Dars — Yii ning yordamchi funksiyalari bilan ishlash

№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

e284962 dars yii ning yordamchi funksiyalari bilan ishlash 65e61e9704290

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

e284962 dars yii ning yordamchi funksiyalari bilan ishlash 65e61e975e65c

Bunda birinchi bo`lib class nomi e`lon qilinmoqdi keyin ehtiyojdagi funksiya yozilmoqda. Shu yordamchi funksiyani chaqirish yo`li quyidagicha

e284962 dars yii ning yordamchi funksiyalari bilan ishlash 65e61e97bd6e7

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:

e284962 dars yii ning yordamchi funksiyalari bilan ishlash 65e61e981dd34

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