Yii 2.0 da 1.1 dagi CComponent klas ikkita klasga ajratilgan: yii\base\BaseObject va yii\base\Component. BaseObject klas oddiy asos klas bo'lib xususiyatlar uchun getter va setter larni ishlatishga imkon beradi. Component klas BaseObject klasdan voris bo'lib xodisalar va o'zini tutish larni qo'llab quvvatlaydi.
Agar sizni klasingizga xodisalar funksiyalari yoki o'zini tutishlar kerak bo'lmasa asos klas sifatida BaseObject ni qo'llashingiz mumkin. Ushbu holat asosan asos strukturali klaslar yaratilayotgan vaqtda yuz beradi.
Obekt sozlashlari
BaseObject klas obektlarni sozlashni yagona usulini tashkillashtiradi. Ixtiyoriy BaseObject ga voris bo'lgan klas (agar kerak bo'lsa) o'zini sozlashi uchun quyidagi ko'rinishda o'ziga konstruktor yaratishi mumkin:
class MyClass extends \yii\base\BaseObject{
public function __construct($param1, $param2, $config = [])
{
// ... sozlashlar qo'llanilishidan oldin initsializatsiyalash (e'lon qilish va qiymatlash)
parent::__construct($config);
}
public function init()
{
parent::init();
// ... sozlashlar qo'llanilganidan keyin initsializatsiyalash
}
}
Yuqoridagi misolda oxirgi parametr obekt xususiyatlarini qiymatlovchi sozlashlar massivi ya'ni kalit-qiymat formatidagi juftlikdan iborat bo'lishi kerak. Siz sozlashlar qo'llanilganidan keyin initsializatsiya ishini amalga oshirish uchun oldindan init() metod yaratib qo'yishingiz mumkin.
Ushbu kelishuvga asoslanib siz sozlash massivi yordamida yangi obektlarni yaratishingiz va sozlashingiz mumkin:
$object = Yii::createObject([
'class' => 'MyClass',
'property1' => 'abc',
'property2' => 'cde',
], [$param1, $param2]);
Sozlashlar haqidagi batafsil ma'lumotlar Obektlarni sozlash bo'limida keltirilgan.
‘
MySQL-dagi ma'lumotlar bazasida barcha imtiyozlarni qanday berish kerak
Muallif: AJ Welch
MySQL-da imtiyozlarni tahrirlashni boshlash uchun avval serveringizga kirishingiz va keyin mysqlmijozga ulanishingiz kerak . Odatda, siz rootMySQL-ni o'rnatishda to'liq kirish huquqiga ega bo'lgan asosiy, boshlang'ich "super foydalanuvchi" hisob qaydnomasi kim bilan ulanishni xohlaysiz .
Odatda rootMySQL o'rnatilganda foydalanuvchiga autentifikatsiya paroli beriladi, ammo agar bunday bo'lmasa root, rasmiy hujjatlarda ko'rsatilganidek parollarni qo'shish orqali o'z xavfsizligingizni oshirish choralarini ko'rishingiz kerak .
MySQL buyruqlar satri vositasiga ulanish
Ushbu misol uchun biz rootasosiy MySQL hisob qaydnomasini olamiz . MySQL buyruqlar satri vositasidan ( mysqlcli) foydalanishni boshlash uchun foydalanuvchi sifatida serverga ulaning rootva mysqlbuyruq bering:
$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu)
[...]
mysql>
Agar muvaffaqiyatli bo'lsa, MySQL ulanishingiz haqida ba'zi natijalarni ko'rasiz va so'rovni pastga mysqlqaratasiz.
Eslatma: Agar sifatida to'g'ridan-to'g'ri serverga ulanish uchun olmadik bo'lsa rootulanishdan oldin foydalanuvchi mysql, siz ulanish uchun foydalanuvchi ko'rsatish mumkin , deb qo'shib --user=bayrog'ini:
$ mysql --user=username
Imtiyozlar berish
Endi siz hozirda bo'lganingizda , tegishli ruxsatlarni qo'llash uchun mysqlclisizga faqat GRANTkerakli variantlar bilan buyruq berishingiz kerak .
Imtiyoz turlari
GRANTBuyruq imtiyozlar turli qo'llash imkoniga ega, qobiliyati har bir narsani CREATEjadvallar va ma'lumotlar bazalari, o'qish yoki yozish FILES, va hatto SHUTDOWNserver. Buyruqda turli xil bayroqlar va variantlar mavjud, shuning GRANTuchun rasmiy hujjatlarni ko'rib chiqish orqali aslida nima qilishi mumkinligi bilan tanishishingiz mumkin .
Ma'lumotlar bazasiga oid imtiyozlar
Ko'pgina hollarda, siz MySQL-ga databasekirish huquqiga ega hisob qaydnomasi asosida foydalanuvchilarga imtiyozlar berasiz . Masalan, har bir noyob MySQL databaseserverda o'ziga xos o'ziga xos xususiyatga ega bo'lishi odatiy userhol bo'lib, bunda faqat bitta yakka usershaxs autentifikatsiya huquqiga ega bo'lishi mumkin databaseva aksincha.
Ushbu GRANT ALLfoydalanuvchiga ma'lum bir usernarsani to'liq boshqarish imkoniyatini beradigan a uchun imtiyozlar uchun databasequyidagi sintaksisdan foydalaning:
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
Bu buyruq yordamida biz MySQL-ga:
GRANTPRIVILEGESturdagi ALL(albatta shunday hamma narsa). Izoh: Ko'pgina zamonaviy MySQL o'rnatmalari qo'shimcha PRIVILEGESkalit so'zni talab qilmaydi .
Ushbu imtiyozlar quyidagilar uchun ko'rsatilgan ma'lumotlar bazasining barcha jadvallariga database_nametegishli ..*
Bu imtiyozlar beriladi username, deb qachon usernametomonidan belgilangan, mahalliy orqali ulanadi @'localhost'. Har qanday amal mezbon belgilash uchun, o'rniga 'localhost'ega '%'.
Butun ma'lumotlar bazasiga barcha imtiyozlarni berishning o'rniga, ehtimol siz tolkienfoydalanuvchiga ma'lumotlar bazasi jadvalidan ma'lumotlarni ( SELECT) o'qish imkoniyatini berishni xohlaysiz . Buni quyidagicha osonlik bilan bajarish mumkin:authorsbooks
mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost';
Boshqa super foydalanuvchi yaratish
Xavfsiz bo'lsa ham, ba'zi holatlarda, siz boshqa "super foydalanuvchi" yaratishingizni xohlashingiz mumkin, bu serverdagi HAMMA ma'lumotlar bazalarida ALL imtiyozlarga ega. Buni yuqoridagi kabi amalga oshirish mumkin, ammo database_nameuni joker yulduzcha bilan almashtirish orqali :
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%';
Endi tolkienodatiy roothisob qaydnomasi kabi imtiyozlarga ega , ehtiyot bo'ling!
O'zgarishlaringizni saqlash
Iste'molchi imtiyozlarining har qanday yangilanishidan so'ng, oxirgi qadam sifatida, FLUSH PRIVILEGESbuyruqni buyruqni berib, saqlaganingizga ishonch hosil qiling mysql:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
escape()Funktsiya muayyan belgilar bir hexadecimal qochish majmuasini o'rniga ega bo'lgan yangi satr hisoblaydi.
Eslatma: Ushbu funktsiya asosan URL so'rovlari uchun ishlatilgan (URL manzilining bir qismi ?) - " " formatidan foydalanadigan oddiy String harflaridan qochish uchun emas . ( ikki oltitali raqamlar va shakl yuqori tekislikdagi unikodli belgilar uchun ishlatiladi.)\xHHHH\xHH\xHH
String literalleri yilda qochib belgilar almashtirib kengaytirilgan mumkin \xbo'lgan %, keyin foydalanib, decodeURIComponent()vazifasini.
Sintaksis
qochish ( str )
Parametrlar
str
Kodlanadigan qator.
Qaytish qiymati
Muayyan belgilar qochib qutulilgan yangi satr.
Ta'rif
escapeFunktsiya bir mulki hisoblanadi global ob'ekt . Maxsus belgilar kodlangan, bundan tashqari:@*_+-./
Kodi birlik qiymat hisoblanadi belgilar uchun hexadecimal shakli 0xFFyoki kam, bir ikki-raqamli chiqish tartibi hisoblanadi: . Kattaroq kod birligiga ega bo'lgan belgilar uchun to'rt xonali format ishlatiladi.%xx%uxxxx
Misollar Qochish usulidan foydalanish
escape('abc123'); // "abc123"escape('äöü'); // "%E4%F6%FC"escape('ć'); // "%u0107"// special charactersescape('@*_+-./'); // "@*_+-./"
Texnik xususiyatlari
|
ECMAScript (ECMA-262)
Ushbu spetsifikatsiyada "qochish" ta'rifi.
|
The escape() function computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.
Note: This function was used mostly for URL queries (the part of a URL following ?)—not for escaping ordinary String literals, which use the format "\xHH". (HH are two hexadecimal digits, and the form \xHH\xHH is used for higher-plane Unicode characters.)
Escaped characters in String literals can be expanded by replacing the \x with %, then using the decodeURIComponent() function.
Syntax
escape(str)
Parameters
str
A string to be encoded.
Return value
A new string in which certain characters have been escaped.
Description
The escape function is a property of the global object. Special characters are encoded with the exception of: @*_+-./
The hexadecimal form for characters, whose code unit value is 0xFF or less, is a two-digit escape sequence: %xx. For characters with a greater code unit, the four-digit format %uxxxx is used.
Examples Using escape
escape('abc123'); // "abc123"escape('äöü'); // "%E4%F6%FC"escape('ć'); // "%u0107"
// special charactersescape('@*_+-./'); // "@*_+-./"
Specifications
Specification
|
ECMAScript (ECMA-262)
The definition of 'escape' in that specification.
|
Do'stlaringiz bilan baham: |