⊗ppOpNsAu 105 of 107 menu

PHPda OOPda Klasslarni Avtomatik Yuklash

Siz allaqachon bilasizki, biron bir klassdan foydalanish uchun uni require orqali ulashimiz kerak. Loyihada juda ko'p klasslar bo'lsa, juda ko'p ulanishlar paydo bo'ladi, ularni yozish juda qiyin va nazorat qilish mushkul.

Bunday muammoni hal qilish uchun PHPga klasslarni avtomatik yuklash qo'shildi. Avtomatik yuklash PHPga kodda klassga murojaat qilishga urinilganda avtomatik ravishda klass faylini yuklash imkonini beradi. Biroq, klasslar shunchaki yuklanmaydi - ularni saytning papkalariga qandaydir bir kelishuvga asosan, fayl va papka nomlari bo'yicha maxsus tartibda joylashtirish kerak. PHPning o'zidagi kelishuvdan foydalanish mumkin, yoki o'zingizning kelishuvingizni yaratish va undan foydalanish mumkin.

Keling, avval PHPning standart kelishuvini ko'rib chiqaylik. Ushbu kelishuv shundan iboratki, agar bizda klass saqlanadigan fayl bo'lsa, unda sayt papkalaridagi ushbu faylga bo'lgan yo'l fayl nomlar fazosi (namespace) bilan mos kelishi kerak, fayl nomi esa ichida saqlanadigan klass nomiga mos kelishi kerak. Bunda papka va fayl nomlari kichik harflarda yozilishi kerak.

Keling, misol orqali ko'rib chiqaylik. Faraz qilaylik, bizda quyidagi klass mavjud:

<?php namespace Core\Admin; class PageController { } ?>

Kelishuvga ko'ra ushbu klass /core/admin/ papkasida pagecontroller.php faylida joylashgan bo'lishi kerak.

Keling endi index.php faylida biz o'z klassimizdan require orqali ulanmasdan, balki avtomatik yuklashdan foydalanib foydalanaylik. Buning uchun klasslar chaqiriladigan faylning boshida spl_autoload_register funksiyasini chaqirish kerak. Buni amalga oshiramiz:

<?php spl_autoload_register(); // avtomatik yuklashni yoqamiz $obj = new Core\Admin\PageController; // xavotirsiz ob'ekt yaratamiz ?>

index.php faylida klasslarni avtomatik yuklashni yoqing. Papka va fayl nomlari bo'yicha kelishuvga rioya qilgan holda Core\User klassini, Core\Admin\Controller klassini va Project\User\Data klassini yarating. index.php faylida ushbu klasslarning ob'ektlarini yarating.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish