PHP да ООП да namespaceларда нисбий йўллаш
Файл index.php да куйидаги
чақириқ амалга оширилсин деб фараз қилайлик:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Сиз биласиз, классга мурожаат қилганда унинг namespaceи олдига тескари чиззиқ қўйиш керак. Аслича, бу мажбурий эмас. Агар бу чиззиқ қўйилмаса, чақирилаётган namespace жорий namespaceга нисбатан ҳисобланади. Мисолга қара:
<?php
namespace Admin\Data;
new Core\Controller; // \Admin\Data\Core\Controller га эквивалент
?>
Икки класс берилган:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Бизнинг классларнинг namespaceларининг мос келувчи қисмини инобатга олиб, мерос олиш учун кодни соддалаштиринг.
Икки класс берилган:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Ушбу классларнинг объектлари
index.php файлида куйидагича яратилмоқда:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Объектлар яратилаётган namespaceни инобатга олиб, объектлар яратиш учун кодни соддалаштиринг.