⊗ppOpNsCA 104 of 107 menu

Klassalias för namnområden i OOP i PHP

Låt oss säga att vi har två klasser Data, som tillhör olika namnområden. Låt oss säga att vi i någon klass behöver objekt från båda dessa klasser:

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

Låt oss säga att vi bestämde oss för att förenkla anropen till klasserna genom kommandot use. I det här fallet möter vi ett problem: båda klasserna har namnet Data, vilket betyder att vi får en namngivningskonflikt:

<?php namespace Project; // Namngivningskonflikt kommer att uppstå: use \Core\Users\Data; // ansluter den första klassen use \Core\Admin\Data; // ansluter den andra klassen class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

För att lösa detta problem finns ett speciellt kommando as, som låter dig ange ett alias för den anslutna klassen - ett namn under vilket denna klass kommer att vara tillgänglig i den här filen. Låt oss byta namn på våra klasser 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; } } ?>

Förenkla följande kod med hjälp av use:

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

Förenkla följande kod med hjälp av use:

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