Use komanda ir vardų sričių naudojimas OOP PHP
Tarkime, kad turime šią Data klasę:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Tarkime, kad taip pat yra Page klasė, kuri
viduje sukuria Data klasės objektus:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Kaip matote, abi mūsų klasės yra
visiškai skirtingose vardų srittyse, todėl
Data klasės iškvietimus supaprastinti negalima,
kaip mes tai darėme ankstesnėje
pamokoje. Šie iškvietimai, tačiau, yra labai ilgi
ir nepatogūs, nes kiekviename Data klasės
iškvietime tenka nurodyti jos ilgą
vardų sritį.
Norint išspręsti tokią problemą, yra
speciali use komanda. Naudojantis
šia komanda pakanka vieną kartą prijungti
klasę pagal jos pilną pavadinimą, ir po to
galima bus kreiptis į šią klasę tiesiog
pagal klasės pavadinimą. Žiūrėkite pavyzdį:
<?php
namespace Users;
use \Core\Admin\Data; // prijungiame klasę
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // iškviečiame tiesiog pagal pavadinimą
$data2 = new Data('2'); // iškviečiame tiesiog pagal pavadinimą
}
}
?>
Supaprastinkite šį kodą naudodami
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Sukuriame 3 vienos klasės objektus:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Duotos šios klasės:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Supaprastinkite klasės paveldėjimo kodą, pritaikę
use komandą.