Amri ya use na Maeneo ya Majina katika OOP katika PHP
Hebu tuchukulie tuna darasa lifuatalo Data:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Hebu pia tuchukulie kuna darasa Page, linalounda
ndani yake vitu vya darasa Data:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Kama unavyoona, madarasa yetu yote mawili yako
katika maeneo ya majina tofauti kabisa, kwa hivyo
miito ya darasa Data haiwezi kurahisishwa,
kama tulivyofanya katika somo lilopita. Miito hii, hata hivyo, ni mirefu
na haifai, kwani katika kila mwito wa darasa
Data inabidi tuonyeshe eneo lake la majina refu.
Kwa ajili ya kutatua tatizo kama hilo kuna
amri maalum use. Kwa kutumia
amri hii inatosha kuunganisha darasa
kwa jina lake kamili mara moja, na baada ya hapo
inawezekana kurejelea darasa hili tu
kwa jina la darasa. Angalia mfano:
<?php
namespace Users;
use \Core\Admin\Data; // tunaunganisha darasa
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // tunaita kwa jina tu
$data2 = new Data('2'); // tunaita kwa jina tu
}
}
?>
Rahisisha msimbo ufuatao kwa kutumia
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Tunaunda vitu 3 vya darasa moja:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Zimetolewa madarasa yafuatayo:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Rahisisha msimbo wa urithi wa darasa, ukitumia
amri use.