PHP-də OOP-də use komandası və ad fəzaları
Tutaq ki, bizim aşağıdakı Data sinfimiz var:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Tutaq ki, həmçinin öz içərisində Data sinfinin obyektlərini yaradan
Page sinfi də var:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Gördüyünüz kimi, hər iki sinifimiz tamamilə fərqli ad fəzalarında yerləşir, buna görə də
Data sinfinin çağırışlarını, əvvəlki dərsdə etdiyimiz kimi, sadələşdirmək olmaz.
Lakin bu çağırışlar çox uzun və əlverişsizdir, çünki hər Data sinfi çağırışında
onun uzun ad fəzasını göstərmək lazımdır.
Bu kimi problemləri həll etmək üçün xüsusi use komandası mövcuddur.
Bu komanda vasitəsilə sinfi bir dəfə onun tam adı ilə qoşmaq kifayətdir, bundan sonra
isə bu sinfə sadəcə sinfin adı ilə müraciət etmək olar. Nümunəyə baxın:
<?php
namespace Users;
use \Core\Admin\Data; // sinfi qoşuruq
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // sadəcə adla çağırırıq
$data2 = new Data('2'); // sadəcə adla çağırırıq
}
}
?>
Aşağıdakı kodu use istifadə edərək sadələşdirin:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Eyni sinifdən 3 obyekt yaradırıq:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Aşağıdakı siniflər verilmişdir:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
use komandasını tətbiq edərək sinif mirasının kodunu sadələşdirin.