⊗ppOpNsCU 101 of 107 menu

Comando use y espacios de nombres en POO en PHP

Supongamos que tenemos la siguiente clase Data:

<?php namespace \Core\Admin; class Data { public function __construct($num) { } } ?>

Supongamos también que existe la clase Page, que crea dentro de sí objetos de la clase Data:

<?php namespace Users; class Page { public function __construct() { $data1 = new \Core\Admin\Data('1'); $data2 = new \Core\Admin\Data('2'); } } ?>

Como puedes ver, ambas clases se encuentran en espacios de nombres completamente diferentes, por lo que las llamadas a la clase Data no se pueden simplificar, similar a como lo hicimos en la lección anterior. Sin embargo, estas llamadas son muy largas e incómodas, ya que en cada llamada a la clase Data es necesario especificar su largo espacio de nombres.

Para resolver este problema existe el comando especial use. Con este comando es suficiente conectar una vez la clase por su nombre completo, y después de eso se podrá acceder a esta clase simplemente por el nombre de la clase. Mira el ejemplo:

<?php namespace Users; use \Core\Admin\Data; // conectamos la clase class Page extends Controller { public function __construct() { $data1 = new Data('1'); // llamamos simplemente por nombre $data2 = new Data('2'); // llamamos simplemente por nombre } } ?>

Simplifique el siguiente código utilizando use:

<?php namespace Project; class Test { public function __construct() { // Creamos 3 objetos de una misma clase: $data1 = new \Core\Users\Data('user1'); $data2 = new \Core\Users\Data('user3'); $data3 = new \Core\Users\Data('user3'); } } ?>

Se dan las siguientes clases:

<?php namespace Core\Admin; class Controller { } ?>
<?php namespace Users; class Page extends \Core\Admin\Controller { } ?>

Simplifique el código de herencia de la clase, aplicando el comando use.

dauzcmstrpt