Klašu pseidonīmi vārdtelpām OOP PHP
Pieņemsim, ka mums ir divas klases Data,
piederīgas dažādām vārdtelpām.
Pieņemsim, ka kādā klasē mums vajag objektus
no abām šīm klasēm:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // izveidojam objektu
$data2 = new \Core\Admin\Data; // izveidojam objektu
}
}
?>
Pieņemsim, ka mēs nolēmām vienkāršot klašu izsaukšanu
izmantojot komandu use. Šajā gadījumā mūs
gaida problēma: abām klasēm ir vārds Data,
un tas nozīmē, ka mums būs vārdu konflikts:
<?php
namespace Project;
// Būs vārdu konflikts:
use \Core\Users\Data; // pievienojam pirmo klasi
use \Core\Admin\Data; // pievienojam otro klasi
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Šīs problēmas risināšanai pastāv speciāla
komanda as, kas ļauj pievienojamajai
klasei iestatīt pseidonīmu - vārdu, ar kuru
šī klase būs pieejama šajā failā. Izveidosim
mūsu klašu Data pārdēvēšanu:
<?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;
}
}
?>
Vienkāršojiet šādu kodu izmantojot
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Vienkāršojiet šādu kodu izmantojot
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>