PHP da OOP da Namespace lardagi nisbiy yo'llar
Faraz qilaylik, index.php faylida
quyidagi chaqiruv amalga oshiriladi:
index.php<?php
namespace Admin\Data;
new \Core\Controller;
?>
Siz bilganingizdek, class ga murojaat qilishda uning namespace i oldidan teskari chiziq yozish kerak. Aslida bu majburiy emas. Agar bu chiziq yozilmasa, chaqirilayotgan namespace joriy namespace ga nisbatan hisoblanadi. Misolni ko'ring:
index.php<?php
namespace Admin\Data;
new Core\Controller; // \Admin\Data\Core\Controller ga teng
?>
Задание 1
Ikkita class berilgan:
php<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
php<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Class larni meros olish uchun kodni soddalashtiring, bizning class larning namespace larining bir qismi mos kelishini hisobga olgan holda.
Задание 2
Ikkita class berilgan:
php<?php
namespace Core\Data;
class Controller
{
}
?>
php<?php
namespace Core\Data;
class Model
{
}
?>
Ushbu class larning obyektlari index.php
faylida shunday yaratiladi:
index.php<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Obyektlarni yaratish uchun kodni soddalashtiring, obyektlarimizning yaratilayotgan namespace ini hisobga olgan holda.