Alias Kelas untuk Namespace di OOP PHP
Misalkan kita memiliki dua kelas Data,
yang termasuk dalam namespace yang berbeda.
Misalkan dalam suatu kelas kita membutuhkan objek
dari kedua kelas tersebut:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // membuat objek
$data2 = new \Core\Admin\Data; // membuat objek
}
}
?>
Misalkan kita memutuskan untuk menyederhanakan pemanggilan kelas
melalui perintah use. Dalam hal ini, kita
akan menghadapi masalah: kedua kelas memiliki nama Data,
yang berarti akan terjadi konflik nama:
<?php
namespace Project;
// Akan terjadi konflik nama:
use \Core\Users\Data; // menghubungkan kelas pertama
use \Core\Admin\Data; // menghubungkan kelas kedua
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Untuk mengatasi masalah ini, terdapat perintah khusus
as, yang memungkinkan kita untuk memberikan
alias kepada kelas yang dihubungkan - sebuah nama, di mana
kelas ini akan dapat diakses dalam file ini. Mari kita
lakukan pengubahan nama untuk kelas-kelas Data kita:
<?php
namespace Project;
use \Core\Users\Data as UsersData;
use \Core\Admin\Data as AdminData;
class Test
{
public function __construct()
{
$data1 = new UsersData;
$data2 = new AdminData;
}
}
?>
Sederhanakan kode berikut dengan menggunakan
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Sederhanakan kode berikut dengan menggunakan
use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>