Klasaliasse vir naamruimtes in OOP in PHP
Kom ons sê ons het twee klasse Data,
wat aan verskillende naamruimtes behoort.
Kom ons sê ons benodig in 'n sekere klas objekte
van albei hierdie klasse:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // skep 'n objek
$data2 = new \Core\Admin\Data; // skep 'n objek
}
}
?>
Kom ons sê ons het besluit om die klasaanroepe te vereenvoudig
met behulp van die use opdrag. In hierdie geval
wag 'n probleem op ons: albei klasse het die naam Data,
wat beteken dat ons 'n naamkonflik sal hê:
<?php
namespace Project;
// Daar sal 'n naamkonflik wees:
use \Core\Users\Data; // koppel die eerste klas in
use \Core\Admin\Data; // koppel die tweede klas in
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Om hierdie probleem op te los, is daar 'n spesiale
opdrag as, wat jou toelaat om 'n alias
vir die ingekoppelde klas toe te ken - 'n naam waaronder
hierdie klas in hierdie lêer toeganklik sal wees. Kom ons
hernoem ons Data klasse:
<?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;
}
}
?>
Vereenvoudig die volgende kode deur
use te gebruik:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Vereenvoudig die volgende kode deur
use te gebruik:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>