⊗ppOpNsCA 104 of 107 menu

Klassenaliase für Namensräume in OOP in PHP

Nehmen wir an, wir haben zwei Klassen Data, die zu verschiedenen Namensräumen gehören. Nehmen wir an, wir benötigen in einer Klasse Objekte beider dieser Klassen:

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

Nehmen wir an, wir haben entschieden, die Klassenaufrufe über den Befehl use zu vereinfachen. In diesem Fall erwartet uns ein Problem: beide Klassen haben den Namen Data, was bedeutet, dass wir einen Namenskonflikt haben werden:

<?php namespace Project; // Es wird einen Namenskonflikt geben: use \Core\Users\Data; // schließen die erste Klasse an use \Core\Admin\Data; // schließen die zweite Klasse an class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

Um dieses Problem zu lösen, existiert ein spezieller Befehl as, der es erlaubt, der anzuschließenden Klasse einen Alias zuzuweisen - einen Namen, unter dem diese Klasse in dieser Datei verfügbar sein wird. Lasst uns die Umbenennung unserer Klassen Data durchführen:

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

Vereinfachen Sie den folgenden Code mit use:

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

Vereinfachen Sie den folgenden Code mit use:

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