Относителни пътища в именните пространства в ООП в PHP
Нека във файла index.php се извършва
следното извикване:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Както вече знаете, при достъп до клас преди неговото име на пространство от имена трябва да се пише обратна наклонена черта. Всъщност това не е задължително. Ако тази наклонена черта не се напише, извиканото именно пространство ще бъде изчислено относително спрямо текущото пространство от имена. Вижте пример:
<?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
{
}
?>
Опростете кода за наследяване на клас, като вземете предвид, че именните пространства на нашите класове имат съвпадаща част.
Дадени са два класа:
<?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;
?>
Опростете кода за създаване на обекти, като вземете предвид именното пространство, в което се създават обекти от нашите класове.