⊗ppOpNsSN 97 of 107 menu

Przestrzenie nazw w OOP w PHP

Załóżmy teraz, że mamy bardziej skomplikowaną sytuację: dla administratora trzeba utworzyć dwie klasy Page - jedną z danymi strony, a drugą - z widokiem tych danych. Niech pierwsza klasa znajduje się w pliku /admin/data/page.php, a druga - w pliku /admin/view/page.php.

W poprzednich lekcjach już ustaliliśmy, że wszystkie klasy z folderu admin będą należeć do przestrzeni nazw Admin. Jednak teraz w tej samej przestrzeni mamy konflikt dwóch klas. Dla rozwiązania problemu można utworzyć dodatkowe podprzestrzenie nazw. Na przykład, można utworzyć przestrzeń nazw Admin, a w niej podprzestrzenie Data i View. W takim przypadku nazwy tych podprzestrzeni po prostu zapisuje się przez odwrotny ukośnik - zarówno przy ustalaniu przestrzeni nazw, jak i przy tworzeniu obiektu klasy.

Należy tutaj wyjaśnić, że poziom zagnieżdżenia podprzestrzeni nie jest ograniczony (można tworzyć podpodprzestrzenie w podprzestrzeniach i tak dalej).

A zatem, dokończmy nasz opisany powyżej przykład. Dla klasy Page z pliku /admin/data/page.php ustawmy przestrzeń nazw Admin\Data:

<?php namespace Admin\Data; class Page { } ?>

Dla klasy Page z pliku /admin/view/page.php ustawmy przestrzeń nazw Admin\View:

<?php namespace Admin\View; class Page { } ?>

Utwórzmy obiekty naszych klas:

<?php require_once '/admin/data/page.php'; require_once '/admin/view/page.php'; $adminDataPage = new \Admin\Data\Page; $adminViewPage = new \Admin\View\Page; ?>

Załóżmy, że masz folder modules/cart. Spraw, aby wszystkie klasy z tego folderu należały do przestrzeni nazw Modules\Cart.

Załóżmy, że masz folder modules/shop/cart/. Spraw, aby wszystkie klasy z tego folderu należały do przestrzeni nazw Modules\Shop\Cart.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć