Фазоиномҳои зер дар ООП дар 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 тааллуқ дошта бошанд.