Команда 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.