Пусть у нас есть два класса Data
,
принадлежащие разным пространствам имен.
Пусть в каком-то классе нам нужны объекты
обоих этих классов:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // создаем объект
$data2 = new \Core\Admin\Data; // создаем объект
}
}
?>
Пусть мы решили упростить вызовы классов
через команду use
. В этом случае нас
ждет проблема: оба класса имеют имя Data
,
а это значит, что у нас будет конфликт имен:
<?php
namespace Project;
// Будет конфликт имен:
use \Core\Users\Data; // подключаем первый класс
use \Core\Admin\Data; // подключаем второй класс
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Для решения этой проблемы существует специальная
команда as
, позволяющая задать подключаемому
классу псевдоним - имя, под которым
этот класс будет доступен в этом файле. Давайте
выполним переименование наших классов Data
:
<?php
namespace Project;
use \Core\Users\Data as UsersData;
use \Core\Admin\Data as AdminData;
class Test
{
public function __construct()
{
$data1 = new UsersData;
$data2 = new AdminData;
}
}
?>
Упростите следующий код с использованием
use
:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Упростите следующий код с использованием
use
:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>