use հրամանը և namespace-ները OOP-ում PHP-ում
Ենթադրենք ունենք հետևյալ 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');
}
}
?>
Ինչպես տեսնում եք, մեր երկու դասերն էլ գտնվում են
բոլորովին տարբեր namespace-ներում, ուստի
Data դասի կանչերը հնարավոր չէ պարզեցնել,
ինչպես դա արեցինք նախորդ դասում: Սակայն այդ կանչերը շատ երկար
և անհարմար են, քանի որ Data դասի յուրաքանչյուր
կանչի ժամանակ պետք է նշել դրա երկար namespace-ը:
Նմանատիպ խնդիր լուծելու համար գոյություն ունի
հատուկ 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 հրամանը: