Klassenavn alias for navnerom i OOP i PHP
La oss si at vi har to klasser Data,
som tilhører forskjellige navnerom.
La oss si at i en klasse trenger vi objekter
fra begge disse klassene:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // oppretter et objekt
$data2 = new \Core\Admin\Data; // oppretter et objekt
}
}
?>
La oss si at vi bestemte oss for å forenkle kall til klassene
via kommandoen use. I dette tilfellet
venter det et problem på oss: begge klassene har navnet Data,
og det betyr at vi vil få en navnekonflikt:
<?php
namespace Project;
// Det vil bli navnekonflikt:
use \Core\Users\Data; // kobler til den første klassen
use \Core\Admin\Data; // kobler til den andre klassen
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
For å løse dette problemet finnes det en spesiell
kommando as, som lar deg tildele den tilkoblede
klassen et alias - et navn som
denne klassen vil være tilgjengelig under i denne filen. La oss
gi våre klasser Data nye navn:
<?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;
}
}
?>
Forenkle følgende kode ved bruk av
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Forenkle følgende kode ved bruk av
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>