Klassi pseudonüümid nimeruumide jaoks OOP-s PHP-s
Oletame, et meil on kaks klassi Data,
kuuluvad erinevatesse nimeruumidesse.
Oletame, et mõnes klassis vajame mõlema klassi
objekte:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // loome objekti
$data2 = new \Core\Admin\Data; // loome objekti
}
}
?>
Oletame, et otsustasime lihtsustada klasside kutsumist
käsu use abil. Sel juhul
ootab meid probleem: mõlemal klassil on nimi Data,
see tähendab, et meil on nimekonflikt:
<?php
namespace Project;
// Tekib nimekonflikt:
use \Core\Users\Data; // ühendame esimese klassi
use \Core\Admin\Data; // ühendame teise klassi
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Selle probleemi lahendamiseks on olemas spetsiaalne
käsk as, mis võimaldab määrata ühendatavale
klassile pseudonüümi - nime, mille all
see klass selles failis kättesaadav on. Teeme
oma klassidele Data ümbernimetuse:
<?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;
}
}
?>
Lihtsustage järgnevat koodi kasutades
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Lihtsustage järgnevat koodi kasutades
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>