Դասերի մականուններ namespace-ների համար OOP-ում PHP-ում
Ենթադրենք, մենք ունենք երկու Data դասեր,
որոնք պատկանում են տարբեր namespace-ների:
Ենթադրենք, ինչ-որ դասում մեզ անհրաժեշտ են օբյեկտներ
այդ երկու դասերից ևս:
<?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;
}
}
?>