PHP-daky OOP-da use buýrugy we at giňişlikleri
Bizde aşakdaky Data klasymyz bar bolsun:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Şeýle hem, içinde Data klasynyň obýektlerini döredýän Page klasy bar bolsun:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Görşüňiz ýaly, iki klasymyz hem düýbünden tapawutly at giňişliklerinde ýerleşýär, şonuň üçin öňki sapakda etişimiz ýaly, Data klasyna çakylyşlary ýönekeýleşdirmek mümkin däl. Emma bu çakylyşlar, her gezek klasyň uzyn at giňişligini görkezmek zerurlygy sebäpli, gaty uzyn we ýaramaz.
Beýle bir meseläni çözmek üçin aýratyn use buýrugy bar. Bu buýruk bilen klasy tutuş ady arkaly bir gezek birikdirmek ýeterlidir we ondan soň bu klasa diňe ady boýunça ýüzlenmek mümkin. Mysala serediň:
<?php
namespace Users;
use \Core\Admin\Data; // klasy birikdirýäris
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // diňe ady boýunça çagyrýarys
$data2 = new Data('2'); // diňe ady boýunça çagyrýarys
}
}
?>
Aşakdaky kody use ulanyp ýönekeýleşdiriň:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Bir klasyň 3 sany obýektini döredýäris:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Aşakdaky klaslar berlen:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
use buýrugyny ulanyp, miras alyş koduny ýönekeýleşdiriň.