Alias di classe per i namespace nella OOP in PHP
Supponiamo di avere due classi Data,
appartenenti a namespace diversi.
Supponiamo che in una certa classe ci servano oggetti
di entrambe queste classi:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // creiamo un oggetto
$data2 = new \Core\Admin\Data; // creiamo un oggetto
}
}
?>
Supponiamo di aver deciso di semplificare le chiamate alle classi
tramite il comando use. In questo caso ci
aspettava un problema: entrambe le classi hanno il nome Data,
ciò significa che avremo un conflitto di nomi:
<?php
namespace Project;
// Ci sarà un conflitto di nomi:
use \Core\Users\Data; // connettiamo la prima classe
use \Core\Admin\Data; // connettiamo la seconda classe
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Per risolvere questo problema esiste un comando speciale
as, che permette di assegnare alla classe connessa
un alias - un nome con cui
questa classe sarà accessibile in questo file. Diamo
un nuovo nome alle nostre classi 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;
}
}
?>
Semplificate il seguente codice utilizzando
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Semplificate il seguente codice utilizzando
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>