Belajar PHP OOP Part 1.9 : Namespace

namespace

  • 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";
name class sama conflict

Menggunakan Fitur Namespace

<?php

namespace Data\One{

class Conflict
{

}
}


namespace Data\Two {
class Conflict
{

}
}
<?php

require_once "data/Conflict.php";
menggunakan fitur namespace
<?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();
output method constant

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();
}
result global namespace

Next Post Previous Post
No Comment
Add Comment
comment url