PHP da OOP da Nomlar Bo'shliqlari
Endi sizda murakkabroq vaziyat bo'lsin:
administrator uchun ikkita Page klassi yaratish kerak
- biri sahifa ma'lumotlari uchun, ikkinchisi - bu ma'lumotlarning
ko'rinishi uchun. Birinchi klass faylda joylashgan bo'lsin
/admin/data/page.php, ikkinchisi
- /admin/view/page.php faylida.
Oldingi darslarda biz allaqachon qaror qilgan edik, admin papkasidagi
barcha klasslar Admin nomlar bo'shlig'iga
tegishli bo'ladi. Biroq, endi o'sha nomlar bo'shlig'ida
ikkita klass nomi to'qnashuvi yuzaga keldi.
Muammoni hal qilish uchun qo'shimcha
nomlar bo'shliqlari yaratish mumkin. Masalan,
Admin nomlar bo'shlig'ini yaratish mumkin, va uning ichida Data va View
kichik bo'shliqlari. Bunday holda
ushbu kichik bo'shliqlarning nomlari
teskari chiziq orqali yoziladi - ham nomlar bo'shlig'ini belgilashda,
ham klass ob'ektini yaratishda.
Bu yerda aniqlashtirish kerakki, kichik bo'shliqlarning ichki darajasi cheklanmagan (kichik bo'shliqlarning ichida yana kichik bo'shliqlar yaratish mumkin va hokazo).
Shunday qilib, keling yuqorida tavsiflangan misolimizni
tugatamiz. /admin/data/page.php faylidagi Page klassi uchun
Admin\Data nomlar bo'shlig'ini ko'rsatamiz:
<?php
namespace Admin\Data;
class Page
{
}
?>
/admin/view/page.php faylidagi Page klassi uchun
Admin\View nomlar bo'shlig'ini ko'rsatamiz:
<?php
namespace Admin\View;
class Page
{
}
?>
Klasslarimizning ob'ektlarini yaratamiz:
<?php
require_once '/admin/data/page.php';
require_once '/admin/view/page.php';
$adminDataPage = new \Admin\Data\Page;
$adminViewPage = new \Admin\View\Page;
?>
Faraz qilaylik, sizda modules/cart papkasi mavjud.
Ushbu papkadagi barcha klasslar
Modules\Cart nomlar bo'shlig'iga tegishli bo'lishi uchun
sozlang.
Faraz qilaylik, sizda modules/shop/cart/ papkasi mavjud.
Ushbu papkadagi barcha klasslar
Modules\Shop\Cart nomlar bo'shlig'iga tegishli bo'lishi uchun
sozlang.