PHP Namespace

PHP Namespace

Namespace adalah cara untuk mengkualifikasikan set kode PHP untuk menyelesaikan dua masalah ini:

  1. Mengelompokkan beberapa class untuk melakukan hal tugas spesifik agar lebih terorganisir
  2. Membuat dua atau lebih class dapat memakai nama yang sama

Misalnya, Anda mungkin memiliki satu set class yang mendeskripsikan tabel HTML, seperti Table, Row, dan Cell sementara juga memiliki satu set class lain untuk mendeskripsikan furnitur, seperti Table, Chair, dan Bed. Namespace dapat digunakan untuk mengatur dan mengelompokkan dua set class tersebut menjadi dua grup berbeda sekaligus mencegah dua kelas dengan nama Table menjadi tercampur aduk.

Mendeklarasikan Namespace

Namaspace dideklarasikan di awal file menggunakan kata kunci namespace :

Sintaks

Deklarasikan namespace Html:

<?php
namespace Html;
?>

Catatan: Deklarasi namespace harus menjadi hal pertama dalam file PHP. Kode berikut tidak valid:

<?php
echo "Halo Dunia!";
namespace Html;
...
?>

Constant, class, dan fungsi yang dideklarasikan dalam file ini akan menjadi milik namespace Html:

Contoh

Buat kelas Table di namespace Html:

<?php
namespace Html;
class Table {
  public $judul = "";
  public $jumlahBaris = 0;
  public function message() {
    echo "<p>Table '{$this->judul}' adalah {$this->jumlahBaris} baris.</p>";
  }
}
$table= new Table();
$table->judul = "Tabelku";
$table->jumlahBaris = 5;
?>

<!DOCTYPE html>
<html>
<body>

<?php
$table->message();
?>

</body>
</html>

Jalankan Contoh

Untuk pengelompokkan lebih lanjut, dimungkinkan untuk memiliki nested namespace:

Sintaks

Deklarasikan namespace bernama Html di dalam namespace bernama Code:

<?php
namespace Code\Html;
?>

Menggunakan Namespace

Kode apa pun yang mengikuti deklarasi namespace beroperasi di dalam namespace tersebut, sehingga class yang termasuk dalam namespace dapat dibuat instance-nya tanpa kualifikasi apa pun. Untuk mengakses class dari luar namespace, class harus memiliki namespace yang dilampirkan padanya.

Contoh

Gunakan class dari namespace Html:

<?php
include "Html.php";

$table = new Html\Table();
$table->judul = "Tabelku";
$table->jumlahBaris = 5;

$row = new Html\Row();
$row->jumlahKolom = 3;
?>

<html>
<body>

<?php $table->message(); ?>
<?php $row->message(); ?>

</body>
</html>

Jalankan Contoh

Ketika banyak class dari namespace yang sama digunakan pada waktu yang sama, akan lebih mudah untuk menggunakan kata kunci namespace:

Contoh

Gunakan class dari namespace Html tanpa memerlukan Html\qualifier:

<?php
namespace Html;
include "Html.php";

$table = new Table();
$table->judul = "Tabelku";
$table->jumlahBaris = 5;

$row = new Row();
$row->jumlahKolom = 3;
?>

<html>
<body>

<?php $table->message(); ?>
<?php $row->message(); ?>

</body>
</html>

Jalankan Contoh

Namespace Alias

Akan berguna untuk memberikan namespace atau class sebuah alias agar lebih mudah untuk menulis. Ini dapat dilakukan dengan kata kunci use:

Contoh

Berikan namespace sebuah alias:

<?php
include "Html.php";
use Html as H;
$table = new H\Table();
$table-> = "Tabelku";
$table->jumlahBaris = 5;
?>

<html>
<body>

<?php $table->message(); ?>

</body>
</html>

Jalankan Contoh

Contoh

Berikan alias pada class:

<?php
include "Html.php";
use Html\Table as T;
$table = new T();
$table->judul = "Tabelku";
$table->jumlahBaris = 5;
?>

<html>
<body>

<?php $table->message(); ?>

</body>
</html>

Jalankan Contoh

Tutorial sebelumnya : PHP Properti Static
Tutorial setelahnya : PHP Iterable
Semua Tutorial PHP : Tutorial PHP

Tinggalkan Balasan

Keranjang Belanja0
Keranjang belanja kosong ...
0