⊗ppOpNsCA 104 of 107 menu

Aliasuri pentru clase în spații de nume în OOP în PHP

Să presupunem că avem două clase Data, care aparțin unor spații de nume diferite. Să presupunem că într-o anumită clasă avem nevoie de obiecte din ambele clase:

<?php namespace Project; class Test { public function __construct() { $data1 = new \Core\Users\Data; // creăm un obiect $data2 = new \Core\Admin\Data; // creăm un obiect } } ?>

Să presupunem că am decis să simplificăm apelurile claselor prin comanda use. În acest caz ne așteaptă o problemă: ambele clase au numele Data, ceea ce înseamnă că vom avea un conflict de nume:

<?php namespace Project; // Va fi conflict de nume: use \Core\Users\Data; // conectăm prima clasă use \Core\Admin\Data; // conectăm a doua clasă class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

Pentru a rezolva această problemă există o comandă specială as, care permite setarea unui alias pentru clasa conectată - un nume sub care această clasă va fi accesibilă în acest fișier. Să efectuăm redenumirea claselor noastre 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; } } ?>

Simplificați următorul cod folosind use:

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

Simplificați următorul cod folosind use:

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