Klasų pseudonimai vardų erdvėse OOP PHP
Tarkime, kad turime dvi klases Data,
priklausančias skirtingoms vardų erdvėms.
Tarkime, kad tam tikroje klasėje mums reikia abiejų
šių klasių objektų:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // sukuriame objektą
$data2 = new \Core\Admin\Data; // sukuriame objektą
}
}
?>
Tarkime, kad nusprendėme supaprastinti klasių iškvietimus
naudojant komandą use. Šiuo atveju mūsų laukia
problema: abi klasės turi vardą Data,
o tai reiškia, kad turėsime vardų konfliktą:
<?php
namespace Project;
// Bus vardų konfliktas:
use \Core\Users\Data; // prijungiame pirmąją klasę
use \Core\Admin\Data; // prijungiame antrąją klasę
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Šiai problemai išspręsti yra skirta speciali
komanda as, leidžianti prijungtai
klasei suteikti pseudonimą - vardą, kuriuo
ši klasė bus pasiekiama šiame faile. Performinkime
mūsų klases 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;
}
}
?>
Supaprastinkite šį kodą naudodami
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Supaprastinkite šį kodą naudodami
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>