AlisherN
AlisherN - Texnoman foydalanuvchisi
So‘nggi tashrifi 8-Mayda



Yii2da saytning ishlash tezligini oshirish

Sayt ishlash tezligini oshirish bir qancha faktorlarga bog'liq bo'ladi. Ba'zilari sayt ishlayotgan muhitga bog'liq bo'ladi, ba'zilari yii freymvorkining o'ziga. Bu yerda bir qancha shunday faktorlarni ko'rib chiqamiz. PHP muhitni yaxshilashYaxshi sozlangan PHP muhiti juda muhim hisoblanadi. Yaxshi samaradorlikka erishish uchun PHPning eng so'nggi versiyalaridan foydalaning. Major versiyalar samaradorlikni oshirishda muhim o'rin tutadi;Opcache…
AlisherN Framework va CMS 15-Aprel 12:05

PHPda overloading xususiyatlari

PHPda overloading dinamik holda xususiyat va metodlarni "yaratish"ni anglatadi. Bu xususiyat va metodlar magic metodalar yordamida ishlatiladi. Overloading metodlar obyektda mavjud bo'lmagan yoki klass sohasidan tashqarida ko'rinmaydigan(ya'ni klass ichida private bilan e'lon qilingan) xususiyat va metodlar bilan ishlaganda avtomatik ishga tushadi. Barcha overloading metodlar public sifatida e'lon qilinishi kerak PHP qo'llanma bo'yicha ba'zi overloading xususiyatlarining izohi public…
AlisherN Framework va CMS 9-Aprel 10:20

Yii2da avtorizatsiya va rollar

Avtorizatsiya Avtorizatsiya – bu tizimga kirgan foydalanuvchida belgilangan faoliyatni amalga oshirishga huquqi bor yoki yo'qligini tekshirish.Yii freymvorkida avtorizatsiyani amalga oshirish uchun ikki xil usul mavjud: ruxsatni filterlab boshqarish(ACF – Access Control Filter) va rolga asoslangan boshqarish(RBAC – Role Based Access Control). Ruxsatni…
Teglar: yii2 yii2-rbac roles 0
AlisherN Framework va CMS 9-Aprel 09:00

Yii2da extension yaratish

Ushbu maqolada yii2 freymvork uchun kengaytma(extension) yaratishni ko'ramiz. Ushbu kengaytmamiz oddiygina "Hello world" xabarini chiqaradi. Bu kengaytmamiz Packagist repositoriyasi orqali foydalaniladi. 1-qadam. Kompyuterda hello-world nomli papka yaratamiz(Yii loyiha papkasi ichida emas). hello-world papkasida esa composer.json nomli fayl yaratamiz va unga quyidagilarni yozamiz:…
AlisherN Umumiy Dasturlash 30-Mart 22:30

Yagona javobgarlik prinsipi

Yagona javobgarlik prinsipi(single responsibility principle) – bu dasturlash tilidagi prinsip bo'lib, unga ko'ra har bir modul, klass yoki funksiya dasturdagi biror funksionallikning yagona qismiga javobgar bo'lishi kerak, hamda, bu javobgarlik klass tomonidan to'liq inkapsulyatsiyalangan bo'lishi kerak. Uning barcha vazifalari shu javobgarlikka mustahkab bog'langan bo'lishi kerak. Robert C. Martin bu prinsipni quyidagicha ta'riflaydi: "Klassning o'zgarishiga faqat bitta sabab…
AlisherN
AlisherN #
Masalan: ``` class Singleton { // Hold an instance of the class private static $singleton; // private constructor bilan `new` operatori orqali yangi ekzemplyar yaratish cheklanadi private function __construct() { } //Private clone metodi bilan olingan obyektdan klon olishga ruxsat berilmaydi private function __clone() { } // Singleton ekzemplyarini beradi. public static function getInstance() { if (!isset(self::$singleton)) { self::$singleton = new Singleton(); } // static ekzemplyar return self::$singleton; } // Singleton ekzemplyarni unserialize qilishga yo'l qo'ymaydi private function __wakeup() { } }
AlisherN
AlisherN #
Singletonda yaratgan klassizni constructori private qilib e'lon qilinadi. cloning ham yopib qo'yiladi(private qilib). Ekzemplyar olish metodi static qilib e'lon qilinadi. Shunda bu klassdan faqat bitta obyekt ekzemplyarini olishiz mumkin bo'ladi.
AlisherN
AlisherN #
Masalan, faraz qiling siz blog sayt yaratmoqchisiz. Bu saytizda yangiliklar bilan ishlaydigan klass yaratasiz. Bu klass faqat yangiliklarni saytga chiqarishga javobgar bo'ladi. Agar siz shu klass ichida turib bazada joylashgan yangiliklarni olmoqchi bo'sayiz yagona javobgarlik prinsipiga rioya qilmagan bo'lasiz. Bazaga murojaat qilish uchun alohida klass yaratasiz va unga shu vazifani yuklaysiz. Xulosa qilib aytganda, har bir klass faqat bitta yo'nalishdagi vazifani bajaradi. Baza bilan ishlash uchun alohida klass yoki klasslar guruhi, oynaga xabar chiqarish uchun alohida klass va h.k.