PHP да ООП да Номлар Фазосида Классларнинг Лакаблари
Фарз қилайлик, бизда турли номлар фазосига тегишли
иккита Data класси мавжуд.
Фарз қилайлик, бирор классда бизга
шу икки класснинг ҳам объектлари керак:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // объект яратамиз
$data2 = new \Core\Admin\Data; // объект яратамиз
}
}
?>
Фарз қилайлик, биз use буйруғи орқали
класслар чақирувларни соддалаштиришга қарор қилдик.
Бунда бизни муаммо кутмоқда: икки класснинг ҳам номи
Data, демак, бизда номлар зиддияті пайдо бўлади:
<?php
namespace Project;
// Номлар зиддияті пайдо бўлади:
use \Core\Users\Data; // биринчи классни улаймиз
use \Core\Admin\Data; // иккинчи классни улаймиз
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Бу муаммони ҳал қилиш учун махсус
as буйруғи мавжуд бўлиб, у қуйилаётган
классга лакаб беришга имкон беради - ушбу файлда
шундай ном остида мавжуд бўлади. Келинг
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;
}
}
?>
Қуйидаги кодни use дан фойдаланиб
соддалаштиринг:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Қуйидаги кодни use дан фойдаланиб
соддалаштиринг:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>