Príkaz use a menné priestory v OOP v PHP
Majme nasledujúcu triedu Data:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Nech je tiež trieda Page, ktorá vytvára
vo svojom vnútri objekty triedy Data:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Ako vidíte, obe naše triedy sa nachádzajú
v úplne rôznych menných priestoroch, preto
volania triedy Data nie je možné zjednodušiť,
podobne ako sme to robili v predchádzajúcej
lekcii. Tieto volania sú však veľmi dlhé
a nepohodlné, pretože v každom volaní triedy
Data musíme uvádzať jeho dlhý
menný priestor.
Na vyriešenie tohto problému existuje
špeciálny príkaz use. Pomocou
tohto príkazu stačí raz pripojiť
triedu podľa jej celého názvu, a potom
sa bude možné na túto triedu odvolávať jednoducho
podľa názvu triedy. Pozrite si príklad:
<?php
namespace Users;
use \Core\Admin\Data; // pripájame triedu
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // voláme jednoducho podľa názvu
$data2 = new Data('2'); // voláme jednoducho podľa názvu
}
}
?>
Zjednodušte nasledujúci kód pomocou
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Vytvárame 3 objekty jednej triedy:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Dané sú nasledujúce triedy:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Zjednodušte kód dedenia triedy aplikovaním
príkazu use.