⊗ppOpNsCA 104 of 107 menu

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; } } ?>
azbydeenesfrkakkptruuz