Фармони use ва фазоҳои номҳо дар ООП дар PHP
Бигзор мо синфи зеринро дошта бошем Data:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Бигзор инчунин синфи Page мавҷуд бошад,
ки дар дохили худ объектҳои синфи Dataро месозад:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Чунон ки шумо мебинед, ҳарду синфи мо
дар фазоҳои номҳои комилан гуногун ҷойгиранд, аз ин рӯ
даъватҳои синфи Dataро содда кардан мумкин нест,
ба монанди он чи ки мо дар дарси гузашта анҷом додем. Ин даъватҳо, аммо, хеле дароз
ва нороҳат ҳастанд,
зеро дар ҳар як даъвати синфи
Data бояд фазои номи дарози онро нишон дод.
Барои ҳалли мушкилоти монанд
фармони махсуси use мавҷуд аст. Бо ёрии
ин фармон кофист як бор синфро тавассути номи пурраи он пайваст кард,
ва пас аз он
метавон ба ин синф танҳо
тавассути номи синф даъват кард. Намунаро бубинед:
<?php
namespace Users;
use \Core\Admin\Data; // синфро пайваст мекунем
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // танҳо тавассути ном даъват мекунем
$data2 = new Data('2'); // танҳо тавассути ном даъват мекунем
}
}
?>
Коди зеринро бо истифода аз
use содда кунед:
<?php
namespace Project;
class Test
{
public function __construct()
{
// 3 объекти як синфро месозем:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Синфҳои зерин дода шудаанд:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Коди мероси синфро бо татбиқи
фармони use содда кунед.