Номҳои такягоҳӣ барои фазоҳои номҳо дар ООП дар PHP
Бигзор мо ду синфи 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;
}
}
?>