⊗ppOpNsSN 97 of 107 menu

Именни подпространства в ООП в PHP

Нека сега имаме по-сложна ситуация: за администратора трябва да направим два класа Page - един с данни на страницата, а вторият - с изглед на тези данни. Нека първият клас се намира във файла /admin/data/page.php, а вторият - във файла /admin/view/page.php.

В предишните уроци вече решихме, че всички класове от папката admin ще принадлежат към именото пространство Admin. Обаче, сега в това също пространство имаме конфликт на два класа. За решаване на проблема може да се направят допълнителни именни подпространства. Например, може да се направи именно пространство Admin, а в него подпространства Data и View. В такъв случай имената на тези подпространства просто се записват через обратна наклонена черта - както при задаване на именото пространство, така и при създаване на обект от клас.

Тук следва да се уточни, че нивото на влагане на подпространства не е ограничено (може да се създават под подпространства в подпространства и така нататък).

И така, нека доразширим описания по-горе пример. За класа Page от файла /admin/data/page.php посочим именно пространство Admin\Data:

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

За класа Page от файла /admin/view/page.php посочим именно пространство Admin\View:

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

Нека създадем обекти от нашите класове:

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

Нека имате папка modules/cart. Направете така, че всички класове от тази папка да принадлежат към именно пространство Modules\Cart.

Нека имате папка modules/shop/cart/. Направете така, че всички класове от тази папка да принадлежат към именно пространство Modules\Shop\Cart.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне