Я изучил использование пространств имен в PHP некоторое время назад, но недавно просмотрел проект, который использовал ключевое слово use, а затем обратился к объекту с расширением имен, как если бы они были нормальными без пространства имен.
Мой вопрос в том, что код ниже правильный, это hs файл index.php и использует пространство имен MyLibrary\Base, а затем использует use для ввода \MyLibrary\Registry \MyLibrary\User и \MyLibrary\Request
Затем он может получить доступ к любому из этих объектов, не помещая там пространство имен, поэтому фактический код под секцией use выглядит как обычный файл php с предварительным пространством имен.
Я спрашиваю, как именно вы используете пространства имен? Или я что-то упускаю?
Файл: index.php
<?php
namespace MyLibrary\Base;
use \MyLibrary\Registry;
use \MyLibrary\User;
use \MyLibrary\Request;
class Base
{
public $registry;
function __construct($registry)
{
$this->registry = $registry;
$this->user = New User;
$this->request = new Request;
# code...
}
}
?>
Файл: registry.class.php
<?php
namespace MyLibrary\Registry;
class Registry
{
public $user;
function __construct($user)
{
$this->user = $user;
# code...
}
}
?>