Komanda use un vārdtelpas OOP PHP
Pieņemsim, ka mums ir šāda klase Data:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Pieņemsim, ka ir arī klase Page, kas
iekšpusē veido Data klases objektus:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Kā jūs redzat, abas mūsu klases atrodas
pilnīgi dažādās vārdtelpās, tāpēc
Data klases izsaukumus nevar vienkāršot,
līdzīgi kā mēs to darījām iepriekšējā
nodarbībā. Šie izsaukumi tomēr ir ļoti gari
un neērti, jo katrā Data klases izsaukumā
nākas norādīt tās garo vārdtelpu.
Lai atrisinātu šādu problēmu, pastāv
īpaša komanda use. Izmantojot
šo komandu, pietiek vienreiz pievienot
klasi pēc tās pilnā nosaukuma, un pēc tam
varēs piekļūt šai klasei vienkārši
pēc klases nosaukuma. Skatiet piemēru:
<?php
namespace Users;
use \Core\Admin\Data; // pievienojam klasi
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // izsaucam vienkārši pēc nosaukuma
$data2 = new Data('2'); // izsaucam vienkārši pēc nosaukuma
}
}
?>
Vienkāršojiet šādu kodu, izmantojot
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Veidojam 3 vienas klases objektus:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Dotas šādas klases:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Vienkāršojiet mantojuma kodu, izmantojot
komandu use.