Perintah use dan Namespace dalam OOP di PHP
Misalkan kita memiliki kelas Data berikut:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Misalkan juga ada kelas Page, yang membuat
objek kelas Data di dalamnya:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Seperti yang Anda lihat, kedua kelas kita berada
di namespace yang sangat berbeda, oleh karena itu
pemanggilan kelas Data tidak dapat disederhanakan,
seperti yang kita lakukan di pelajaran
sebelumnya. Namun, pemanggilan ini sangat panjang
dan tidak nyaman, karena dalam setiap pemanggilan kelas
Data kita harus menyebutkan namespace panjangnya.
Untuk menyelesaikan masalah seperti ini, terdapat
perintah khusus use. Dengan menggunakan
perintah ini, cukup sambungkan kelas tersebut
sekali dengan nama lengkapnya, dan setelah itu
kelas ini dapat diakses hanya dengan
nama kelasnya. Lihat contoh:
<?php
namespace Users;
use \Core\Admin\Data; // sambungkan kelas
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // panggil hanya dengan nama
$data2 = new Data('2'); // panggil hanya dengan nama
}
}
?>
Sederhanakan kode berikut dengan menggunakan
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Buat 3 objek dari satu kelas:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Diberikan kelas-kelas berikut:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Sederhanakan kode pewarisan kelas, dengan menerapkan
perintah use.