Jalur Relatif dalam Namespace di OOP PHP
Misalkan dalam file index.php terjadi
pemanggilan berikut:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Seperti yang sudah Anda ketahui, saat mengakses kelas sebelum namespace-nya harus ditulis backslash. Sebenarnya ini tidak wajib. Jika backslash ini tidak ditulis, maka namespace yang dipanggil akan dihitung relatif terhadap namespace saat ini. Lihat contoh:
<?php
namespace Admin\Data;
new Core\Controller; // setara dengan \Admin\Data\Core\Controller
?>
Diberikan dua kelas:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Sederhanakan kode untuk pewarisan kelas, dengan mempertimbangkan bahwa namespace kelas-kelas kita memiliki bagian yang sama.
Diberikan dua kelas:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Berikut adalah cara objek kelas-kelas ini dibuat dalam
file index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Sederhanakan kode untuk pembuatan objek, dengan mempertimbangkan namespace tempat objek kelas-kelas kita dibuat.