Pseudonimi klasa za imenske prostore u OOP-u u PHP-u
Neka imamo dve klase Data,
koje pripadaju različitim imenskim prostorima.
Neka u nekoj klasi trebaju objekti
obe ove klase:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // kreiramo objekat
$data2 = new \Core\Admin\Data; // kreiramo objekat
}
}
?>
Neka smo odlučili da pojednostavimo pozive klasa
preko naredbe use. U ovom slučaju nas
čeka problem: obe klase imaju ime Data,
a to znači da ćemo imati konflikt imena:
<?php
namespace Project;
// Biće konflikt imena:
use \Core\Users\Data; // povezujemo prvu klasu
use \Core\Admin\Data; // povezujemo drugu klasu
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Za rešavanje ovog problema postoji posebna
naredba as, koja omogućava da se povezanoj
klasi dodeli pseudonim - ime pod kojim
će ova klasa biti dostupna u ovom fajlu. Hajde da
izvršimo preimenovanje naših klasa 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;
}
}
?>
Pojednostavite sledeći kod koristeći
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Pojednostavite sledeći kod koristeći
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>