Santykiniai keliai vardų erdvėje OOP PHP
Tarkime, faile index.php vyksta
toks iškvietimas:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Kaip jau žinote, kreipiantis į klasę prieš jos vardų erdvę reikėtų rašyti atvirkštinį pasvirąjį brūkšnį. Tiesą sakant, tai nėra būtina. Jei šio brūkšnio nerašysite, iškviečiamoji vardų erdvė bus skaičiuojama santykinai esamos vardų erdvės atžvilgiu. Žiūrėkite pavyzdį:
<?php
namespace Admin\Data;
new Core\Controller; // ekvivalentu \Admin\Data\Core\Controller
?>
Duotos dvi klasės:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Supaprastinkite paveldėjimo kodą, atsižvelgdami į tai, kad mūsų klasių vardų erdvės turi sutampančią dalį.
Duotos dvi klasės:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Štai taip sukuriami šių klasių objektai
faile index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Supaprastinkite objektų kūrimo kodą, atsižvelgdami į vardų erdvę, kurioje kuriami mūsų klasių objektai.