Klassenaam aliassen voor namespaces in OOP in PHP
Stel we hebben twee klassen Data,
die tot verschillende namespaces behoren.
Stel dat we in een bepaalde klasse objecten nodig hebben
van beide klassen:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // maak een object
$data2 = new \Core\Admin\Data; // maak een object
}
}
?>
Stel dat we besloten hebben de klasse-aanroepen te vereenvoudigen
via het commando use. In dit geval
wacht ons een probleem: beide klassen hebben de naam Data,
wat betekent dat we een naamconflict zullen hebben:
<?php
namespace Project;
// Er zal een naamconflict zijn:
use \Core\Users\Data; // verbind de eerste klasse
use \Core\Admin\Data; // verbind de tweede klasse
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Voor de oplossing van dit probleem bestaat er een speciaal
commando as, dat het mogelijk maakt om de verbonden
klasse een alias te geven - een naam, onder welke
deze klasse beschikbaar zal zijn in dit bestand. Laten we
de hernoeming van onze klassen Data uitvoeren:
<?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 de volgende code met gebruik
van use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Vereenvoudig de volgende code met gebruik
van use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>