Laluan Relatif dalam Ruang Nama dalam OOP dalam PHP
Katakan dalam fail index.php berlaku
panggilan berikut:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Seperti yang anda sudah tahu, apabila merujuk kepada kelas sebelum ruang namanya, anda harus menulis slash terbalik. Sebenarnya, ini tidak semestinya. Jika slash ini tidak ditulis, maka ruang nama yang dipanggil akan dikira secara relatif kepada ruang nama semasa. Lihat contoh:
<?php
namespace Admin\Data;
new Core\Controller; // bersamaan dengan \Admin\Data\Core\Controller
?>
Diberi dua kelas:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Permudahkan kod untuk pewarisan kelas, dengan mengambil kira bahawa ruang nama kelas kita mempunyai bahagian yang bertindih.
Diberi dua kelas:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Beginilah objek kelas ini dicipta dalam
fail index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Permudahkan kod untuk mencipta objek, dengan mengambil kira ruang nama di mana objek kelas kita dicipta.