Տարածքների անունների հարաբերական ուղիները OOP-ում PHP-ում
Ենթադրենք index.php ֆայլում տեղի է ունենում
հետևյալ կանչը.
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Ինչպես արդեն գիտեք, դասին դիմելիս նրա տարածքի անունից առաջ պետք է գրել հակադարձ շեղ: Իրականում դա պարտադիր չէ. Եթե այդ շեղը չգրել, ապա կանչվող տարածքի անունը կհաշվարկվի ընթացիկ տարածքի նկատմամբ: Նայեք օրինակը.
<?php
namespace Admin\Data;
new Core\Controller; // համարժեք է \Admin\Data\Core\Controller
?>
Տրված են երկու դասեր.
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Պարզեցրեք դասի ժառանգման կոդը, հաշվի առնելով այն, որ մեր դասերի տարածքների անունները ունեն համընկնող մաս:
Տրված են երկու դասեր.
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Այս դասերի օբյեկտները index.php ֆայլում
ստեղծվում են այսպես.
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Պարզեցրեք օբյեկտների ստեղծման կոդը, հաշվի առնելով այն տարածքի անունը, որում ստեղծվում են մեր դասերի օբյեկտները: