Я изучил использование пространств имен в 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...
}
}
?>