⊗ppOpNsCA 104 of 107 menu

Aliasy tříd pro jmenné prostory v OOP v PHP

Předpokládejme, že máme dvě třídy Data, které patří do různých jmenných prostorů. Předpokládejme, že v nějaké třídě potřebujeme objekty obou těchto tříd:

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

Předpokládejme, že jsme se rozhodli zjednodušit volání tříd pomocí příkazu use. V tomto případě nás čeká problém: obě třídy mají jméno Data, a to znamená, že budeme mít konflikt jmen:

<?php namespace Project; // Bude konflikt jmen: use \Core\Users\Data; // připojíme první třídu use \Core\Admin\Data; // připojíme druhou třídu class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

Pro řešení tohoto problému existuje speciální příkaz as, který umožňuje nastavit připojované třídě alias - jméno, pod kterým bude tato třída v tomto souboru dostupná. Pojďme přejmenovat naše třídy 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; } } ?>

Zjednodušte následující kód pomocí use:

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

Zjednodušte následující kód pomocí use:

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