PHP da OOP da Ism Fazolari uchun Sinf Taxalluslari
Faraz qilaylik, bizda ikkita Data sinfi bor,
ular turli ism fazolariga tegishli.
Faraz qilaylik, qandaydir sinfda bizga
ushbu sinflarning ikkala ob'ekti ham kerak:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // ob'ekt yaratamiz
$data2 = new \Core\Admin\Data; // ob'ekt yaratamiz
}
}
?>
Faraz qilaylik, biz sinf chaqiruvlarini
use buyrug'i orqali soddalashtirishga qaror qildik.
Bunda bizni muammo kutadi: ikkala sinf ham Data nomiga ega,
bu esa nomlar to'qnashuviga olib keladi:
<?php
namespace Project;
// Nomlar to'qnashuvi bo'ladi:
use \Core\Users\Data; // birinchi sinfni ulaymiz
use \Core\Admin\Data; // ikkinchi sinfni ulaymiz
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Ushbu muammoni hal qilish uchun maxsus
as buyrug'i mavjud bo'lib, u ulangan
sinfga taxallus berishga imkon beradi -
ushbu faylda sinfga kirish nomi. Keling
Data sinflarimizga qayta nom beramiz:
<?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;
}
}
?>
Quyidagi kodni use yordamida
soddalashtiring:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Quyidagi kodni use yordamida
soddalashtiring:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>