PHP හි OOP හි use විධානය සහ නාම අවකාශ
අපට පහත දැක්වෙන 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 විධානය.