Sintaks Ruang Nama dalam OOP dalam PHP
Untuk menetapkan ruang nama kepada kelas, anda perlu
menulis arahan namespace pada baris pertama fail,
di mana kelas itu disimpan,
dan selepasnya dengan jarak - nama
ruang nama tersebut.
Jika kelas tergolong dalam mana-mana ruang nama, maka untuk mencipta objek kelas, anda perlu menentukan bukan sahaja nama kelas, tetapi juga ruang namanya, dipisahkan oleh garis sendeng belakang. Mari kita lihat contoh.
Katakan kita ada kelas Page, yang tidak tergolong
kepada mana-mana ruang nama. Kemudian objek
kelas ini akan kita cipta seperti berikut:
<?php
$page = new Page;
?>
Sekarang katakan kelas ini tergolong dalam ruang nama
Admin. Dalam kes ini, objek kelas ini
akan kita cipta dengan cara berikut:
<?php
$page = new \Admin\Page;
?>
Mari kita asingkan kelas untuk pengguna dan kelas untuk pentadbir ke dalam ruang nama yang berbeza, untuk mengelakkan konflik kelas seperti yang dinyatakan di atas.
Untuk kelas Page dari fail /admin/page.php
tetapkan ruang nama Admin:
<?php
namespace Admin;
class Page
{
}
?>
Dan untuk kelas Page dari fail /users/page.php
tetapkan ruang nama Users:
<?php
namespace Users;
class Page
{
}
?>
Sekarang dalam fail /index.php
mari kita cipta objek bagi satu dan kedua-dua
kelas Page:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Katakan anda mempunyai folder core dan folder
project. Setiap folder mempunyai
kelas Controller tersendiri. Pastikan
kelas-kelas ini tergolong dalam ruang nama yang berbeza.
Dalam fail index.php, cipta objek
bagi satu dan kedua-dua kelas.