Vyeo vya Majina kwa Ajira ya Majina katika OOP katika PHP
Hebu tuchukulie tuna madarasa mawili Data,
yakiwa ya ajira tofauti za majina.
Hebu tuchukulie katika darasa fulani tunahitaji vitu
vya madarasa yote mawili haya:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // kuunda kitu
$data2 = new \Core\Admin\Data; // kuunda kitu
}
}
?>
Hebu tuchukulie tumeamua kurahisisha miito ya madarasa
kupitia amri use. Katika hali hii, tunatarajiwa
na tatizo: madarasa yote mawili yana jina Data,
na hii inamaanisha kuwa tutakuwa na mgogoro wa majina:
<?php
namespace Project;
// Kutakuwa na mgogoro wa majina:
use \Core\Users\Data; // kuunganisha darasa la kwanza
use \Core\Admin\Data; // kuunganisha darasa la pili
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Kutatua tatizo hili kuna amri maalum
as, inayoruhusu kuweka darasa linalounganishwa
kivyo - jina, ambalo
darasa hili litapatikana kwa jina hili katika faili hii. Hebu
tufanye ubadilishaji-jina wa madarasa yetu Data:
<?php
namespace Project;
use \Core\Users\Data as UsersData;
use \Core\Admin\Data as AdminData;
class Test
{
public function __construct()
{
$data1 = new UsersData;
$data2 = new AdminData;
}
}
?>
Rahisisha msimbo ufuatao kwa kutumia
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Rahisisha msimbo ufuatao kwa kutumia
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>