⊗ppOpNsSN 97 of 107 menu

Namespace Subruimten in OOP in PHP

Stel dat we nu een meer complexe situatie hebben: voor de admin moeten twee klassen Page gemaakt worden - één met de paginagegevens, en de tweede - met de weergave van deze gegevens. Stel dat de eerste klasse zich bevindt in het bestand /admin/data/page.php, en de tweede - in het bestand /admin/view/page.php.

In eerdere lessen hebben we al besloten dat alle klassen uit de map admin zullen behoren tot de namespace Admin. Maar nu hebben we in dit zelfde namespace een conflict van twee klassen. Om het probleem op te lossen kunnen aanvullende namespace subruimten gemaakt worden. Het is bijvoorbeeld mogelijk om een namespace Admin te maken, en daarin subruimten Data en View. In dat geval worden de namen van deze subruimten eenvoudigweg geschreven via een backslash - zowel bij het instellen van de namespace als bij het aanmaken van een object van de klasse.

Hier moet worden verduidelijkt dat het niveau van genestheid van subruimten niet beperkt is (het is mogelijk om sub-subruimten in subruimten te creëren en zo verder).

Laten we dus ons hierboven beschreven voorbeeld afmaken. Voor de klasse Page uit het bestand /admin/data/page.php geven we de namespace Admin\Data aan:

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

Voor de klasse Page uit het bestand /admin/view/page.php geven we de namespace Admin\View aan:

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

Laten we objecten van onze klassen aanmaken:

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

Stel dat je een map modules/cart hebt. Zorg ervoor dat alle klassen uit deze map behoren tot de namespace Modules\Cart.

Stel dat je een map modules/shop/cart/ hebt. Zorg ervoor dat alle klassen uit deze map behoren tot de namespace Modules\Shop\Cart.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren