Die use-opdrag en naamruimtes in OOP in PHP
Gestel ons het die volgende klas Data:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Gestel daar is ook 'n klas Page wat
binne-in homself voorwerpe van die klas Data skep:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Soos jy kan sien, is albei ons klasse in
heel ander naamruimtes, daarom kan
die oproepe na die klas Data nie vereenvoudig word nie,
soos ons in die vorige les gedoen het.
Hierdie oproepe is egter baie lank
en ongerieflik, want in elke oproep na die klas
Data moet sy lang
naamruimte gespesifiseer word.
Vir die oplossing van hierdie soort probleem bestaan daar
'n spesiale opdrag use. Met behulp van
hierdie opdrag is dit genoeg om een keer die klas
volgens sy volledige naam te koppel, en daarna
kan na hierdie klas eenvoudig
volgens die klasnaam verwys word. Kyk na die voorbeeld:
<?php
namespace Users;
use \Core\Admin\Data; // koppel die klas
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // roep eenvoudig volgens naam
$data2 = new Data('2'); // roep eenvoudig volgens naam
}
}
?>
Vereenvoudig die volgende kode met die gebruik van
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Skep 3 voorwerpe van een klas:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Die volgende klasse word gegee:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Vereenvoudig die kode van klas-oorerwing deur die
opdrag use toe te pas.