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