Псевдоними класа за просторе имена у ООП у ПХП-у
Претпоставимо да имамо две класе 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;
}
}
?>