⊗ppOpNsSN 97 of 107 menu

PHP-də OOP-də Adlar Fəzasının Alt Fəzaları

Indi tutaq ki, bizim daha mürəkkəb vəziyyətimiz var: admin üçün iki Page sinfi etmək lazımdır - biri səhifənin məlumatları ilə, digəri isə bu məlumatların təqdimatı ilə. Tutaq ki, birinci sinif /admin/data/page.php faylındadır, ikincisi isə - /admin/view/page.php faylındadır.

Əvvəlki dərslərdə biz artıq qərar vermişdik ki, admin qovluğundakı bütün siniflər Admin adlar fəzasına aid olacaq. Lakin, indi bu eyni adlar fəzasında iki sinfin konflikti yaranır. Problemi həll etmək üçün əlavə adlar fəzasının alt fəzaları yaradıla bilər. Məsələn, Admin adlar fəzası, onun içində isə DataView alt fəzaları yaradıla bilər. Belə halda bu alt fəzaların adları sadəcə tərs çəp ilə yazılır - həm adlar fəzası təyin edərkən, həm də sinif obyekti yaradarkən.

Burada aydınlaşdırmaq lazımdır ki, alt fəzaların iç-içəlik səviyyəsi məhdud deyil (alt fəzalarda alt-alt fəzalar yaradıla bilər və s.).

Beləliklə, gəlin yuxarıda təsvir etdiyimiz nümunəni bitirək. /admin/data/page.php faylındakı Page sinfi üçün Admin\Data adlar fəzasını göstərək:

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

/admin/view/page.php faylındakı Page sinfi üçün Admin\View adlar fəzasını göstərək:

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

Gəlin siniflərimizin obyektlərini yaradaq:

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

Tutaq ki, sizin modules/cart qovluğunuz var. Elə edin ki, bu qovluqdakı bütün siniflər Modules\Cart adlar fəzasına aid olsun.

Tutaq ki, sizin modules/shop/cart/ qovluğunuz var. Elə edin ki, bu qovluqdakı bütün siniflər Modules\Shop\Cart adlar fəzasına aid olsun.

azbydeenesfrkakkptruuz