Синтаксиси фазоҳои номҳо дар ООП дар PHP
Барои муайян кардани фазои номи барои як синф, бояд
дар сатри аввали файл, ки ин синф дар он нигоҳ дошта мешавад,
фармон namespace-ро нависед,
ва баъд аз он бо як фосила - номи ин
фазои номро.
Агар синф ба ягон фазои ном тааллуқ дошта бошад, пас барои эҷоди объекти синф бояд на танҳо номи синфро, балки фазои номи онро низ зикр кард, ки бо слэши баръакс ҷудо карда шудаанд. Биёед ба мисол назар кунем.
Фарз кунем, ки мо синфи Page-ро дорем, ки ба ягон
фазои ном тааллуқ надорад. Онгоҳ объекти
ин синфро мо ба тариқи зерин эҷод мекунем:
<?php
$page = new Page;
?>
Акнун фарз кунем, ки ин синф ба фазои номи
Admin тааллуқ дорад. Дар ин ҳолат объекти ин
синфро мо ҳамин тавр эҷод мекунем:
<?php
$page = new \Admin\Page;
?>
Биёед синфҳоро барои корбарон ва синфҳоро барои администраторҳо ба фазоҳои номи гуногун ҷудо кунем, то аз конфликтҳои синфҳои дар боло тавсифшуда раҳо шавем.
Барои синфи Page аз файли /admin/page.php
фазои номи Admin-ро муайян кунем:
<?php
namespace Admin;
class Page
{
}
?>
Ва барои синфи Page аз файли /users/page.php
фазои номи Users-ро муайян кунем:
<?php
namespace Users;
class Page
{
}
?>
Акнун биёед дар файли /index.php
як объект аз ҳардуи
синфҳои Page эҷод кунем:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Фарз кунем, ки шумо ҷузвдони core ва ҷузвдони
project-ро доред. Дар ҳар як ҷузвдон синфи худ
Controller мавҷуд аст. Чунин кунед, ки
ин синфҳо ба фазоҳои номи гуногун тааллуқ дошта бошанд. Дар файли index.php объектҳои
як ва синфи дигарро эҷод кунед.