Aliasy tried pre menové priestory v OOP v PHP
Majme dve triedy Data,
ktoré patria do rôznych menných priestorov.
Predpokladajme, že v nejakej triede potrebujeme objekty
oboch týchto tried:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // vytvoríme objekt
$data2 = new \Core\Admin\Data; // vytvoríme objekt
}
}
?>
Predpokladajme, že sme sa rozhodli zjednodušiť volania tried
pomocou príkazu use. V tomto prípade nás
čaká problém: obe triedy majú názov Data,
čo znamená, že budeme mať konflikt mien:
<?php
namespace Project;
// Nastane konflikt mien:
use \Core\Users\Data; // pripojíme prvú triedu
use \Core\Admin\Data; // pripojíme druhú triedu
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Na vyriešenie tohto problému existuje špeciálny
príkaz as, ktorý umožňuje pripojovanej
triede nastaviť alias - názov, pod ktorým
bude táto trieda prístupná v tomto súbore. Poďme
premenovať naše triedy 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;
}
}
?>
Zjednodušte nasledujúci kód pomocou
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Zjednodušte nasledujúci kód pomocou
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>