Каманда use і прасторы імён у ААП у PHP
Хай у нас ёсць наступны клас Data:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Хай таксама ёсць клас Page, які стварае
ўнутры сябе аб'екты класа Data:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Як вы бачыце, абодва нашы класы знаходзяцца
ў зусім розных прасторах імён, таму
выклікі класа Data спрасціць нельга,
падобна таму, як мы гэта рабілі ў папярэднім
уроку. Гэтыя выклікі, аднак, вельмі доўгія
і нязручныя, бо ў кожным выкліку класа
Data даводзіцца паказваць яго доўгае
прастора імён.
Для вырашэння падобнай праблемы існуе
спецыяльная каманда use. З дапамогай
гэтай каманды дастаткова адзін раз падключыць
клас па яго поўным імі, і пасля гэтага
можна будзе звяртацца да гэтага класа проста
па імі класа. Глядзіце прыклад:
<?php
namespace Users;
use \Core\Admin\Data; // падключаем клас
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // выклікаем проста па імі
$data2 = new Data('2'); // выклікаем проста па імі
}
}
?>
Спрасціце наступны код з выкарыстаннем
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Ствараем 3 аб'екты аднаго класа:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Даныя наступныя класы:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Спрасціце код наследавання класа, прымяніўшы
каманду use.