PHP да ООП да use команда ва номфазалар
Фарз қилайлик, бизда қуйидаги 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 командасидан фойдаланиб, мерос олиш кодини
соддалаштиринг.