⊗ppOpNsCA 104 of 107 menu

Pseudônimos de classes para namespaces em POO em PHP

Suponha que temos duas classes Data, pertencentes a namespaces diferentes. Suponha que em alguma classe precisamos de objetos de ambas essas classes:

<?php namespace Project; class Test { public function __construct() { $data1 = new \Core\Users\Data; // cria um objeto $data2 = new \Core\Admin\Data; // cria um objeto } } ?>

Suponha que decidimos simplificar as chamadas de classes através do comando use. Neste caso, nós enfrentaremos um problema: ambas as classes têm o nome Data, o que significa que teremos um conflito de nomes:

<?php namespace Project; // Haverá conflito de nomes: use \Core\Users\Data; // conecta a primeira classe use \Core\Admin\Data; // conecta a segunda classe class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

Para resolver este problema, existe um comando especial as, que permite definir para a classe conectada um pseudônimo - um nome sob o qual esta classe estará acessível neste arquivo. Vamos renomear nossas classes 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 o seguinte código usando use:

<?php namespace Project; class Test { public function __construct() { $pageController = new \Resource\Controller\Page; $pageModel = new \Resource\Model\Page; } } ?>

Simplifique o seguinte código usando use:

<?php namespace Project\Data; class Test { public function __construct() { $pageController = new \Project\Data\Controller\Page; $pageModel = new \Project\Data\Model\Page; } } ?>
roesendahu