Relatívne cesty v mennom priestore v OOP v PHP
Nech v súbore index.php prebieha
nasledujúce volanie:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Ako už viete, pri prístupe k triede pred jej menným priestorom by sa mal písať spätné lomítko. V skutočnosti to nie je nevyhnutné. Ak toto lomítko nenapíšete, volaný menný priestor sa vypočíta relatívne k aktuálnemu mennému priestoru. Pozrite príklad:
<?php
namespace Admin\Data;
new Core\Controller; // ekvivalentné \Admin\Data\Core\Controller
?>
Dané dve triedy:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Zjednodušte kód pre dedenie triedy, berúc do úvahy to, že menné priestory našich tried majú zhodnú časť.
Dané dve triedy:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Takto sa vytvárajú objekty týchto tried v
súbore index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Zjednodušte kód pre vytváranie objektov, berúc do úvahy menný priestor, v ktorom sa vytvárajú objekty našich tried.