Nama Samaran Kelas untuk Ruang Nama dalam OOP dalam PHP
Katakan kita mempunyai dua kelas Data,
yang tergolong dalam ruang nama yang berbeza.
Katakan dalam kelas tertentu kita memerlukan objek
dari kedua-dua kelas ini:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // mencipta objek
$data2 = new \Core\Admin\Data; // mencipta objek
}
}
?>
Katakan kita ingin memudahkan panggilan kelas
melalui perintah use. Dalam kes ini, kita
akan menghadapi masalah: kedua-dua kelas mempunyai nama Data,
ini bermakna kita akan mempunyai konflik nama:
<?php
namespace Project;
// Akan berlaku konflik nama:
use \Core\Users\Data; // sambungkan kelas pertama
use \Core\Admin\Data; // sambungkan kelas kedua
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Untuk menyelesaikan masalah ini, terdapat perintah khas
as, yang membolehkan kita menetapkan
nama samaran kepada kelas yang disambungkan - nama, di mana
kelas ini akan boleh diakses dalam fail ini. Mari
kami namakan semula kelas Data kami:
<?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;
}
}
?>
Permudahkan kod berikut dengan menggunakan
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Permudahkan kod 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;
}
}
?>