- Saat kita membuat aplikasi, bisa dipastikan kita akan banyak sekali membuat class
- Jika class terlalu banyak, kadang akan menyulitkan kita untuk mencari atau mengklasifikasikan jenis-jenis class
- PHP memiliki fitur namespace, dimana kita bisa menyimpan class-class kita di dalam namespace
- Namespace bisa nested, dan jika kita ingin mengakses class yang terdapat di namespace, kita perlu menyebutkan nama namespace nya
- Namespace bagus ketika punya beberapa class yang sama, dengan menggunakan namespace nama class sama tidak akan menjadikan error di PHP
Membuat Namespace
- Untuk membuat namespace, kita bisa menggunakan kata kunci namespace
- Jika kita ingin membuat sub namespace, kita cukup gunakan karakter \ setelah namespace sebelumnya
Tidak Menggunakan Fitur Namespace
<?php
class Conflict
{
}
class Conflict
{
}
<?php
require_once "data/Conflict.php";
Menggunakan Fitur Namespace
<?php
namespace Data\One{
class Conflict
{
}
}
namespace Data\Two {
class Conflict
{
}
}
<?php
require_once "data/Conflict.php";
<?php
require_once "data/Conflict.php";
// Membuat Object dari Namespace
$conflict1 = new Data\One\Conflict();
$conflict2 = new Data\Two\Conflict();
Function dan Constant di Namespace
- Selain class, kita juga menggunakan function dan constant di namespace
- Dan jika kita ingin menggunakan function atau constant tersebut, kita bisa menggunakannya dengan diawali nama namesapce nya
<?php
namespace Helper;
function helpMe ()
{
echo "HELP ME" . PHP_EOL;
}
const APPLICATION = "Belajar PHP OOP";
<?php
require_once "data/Conflict.php";
require_once "data/Helper.php";
$conflict1 = new Data\One\Conflict();
$conflict2 = new Data\Two\Conflict();
// Akses Constant di Namespace
echo Helper\APPLICATION . PHP_EOL;
//Akses Function di Namespace
Helper\helpMe();
Global Namespace
- Secara default saat kita membuat kode di PHP sebenarnya itu disimpan di global namespace
- Global namespace adalah namespace yang tidak memiliki nama namespace
<?php
//Global Namespace
namespace {
require_once "data/Conflict.php";
require_once "data/Helper.php";
$conflict1 = new Data\One\Conflict();
$conflict2 = new Data\Two\Conflict();
echo Helper\APPLICATION . PHP_EOL;
Helper\helpMe();
}