Alias de clases para espacios de nombres en POO en PHP
Supongamos que tenemos dos clases Data,
pertenecientes a diferentes espacios de nombres.
Supongamos que en alguna clase necesitamos objetos
de ambas clases:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // creamos un objeto
$data2 = new \Core\Admin\Data; // creamos un objeto
}
}
?>
Supongamos que decidimos simplificar las llamadas a clases
mediante el comando use. En este caso nos
espera un problema: ambas clases tienen el nombre Data,
lo que significa que tendremos un conflicto de nombres:
<?php
namespace Project;
// Habrá conflicto de nombres:
use \Core\Users\Data; // conectamos la primera clase
use \Core\Admin\Data; // conectamos la segunda clase
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Para resolver este problema existe un comando especial
as, que permite asignar a la clase conectada
un alias - un nombre bajo el cual
esta clase estará disponible en este archivo. Vamos
a renombrar nuestras clases 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;
}
}
?>
Simplifique el siguiente código utilizando
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Simplifique el siguiente código utilizando
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>