Kenalan Dengan Namespace di PHP

Hampir sama dengan namespace di C#. Sama juga dengan package di java atau actionscript pada flash. Tujuannya sama, mengelompokkan class. Menjadikan kode lebih rapi, terstruktur dan mudah dibaca. Jika kita coba melihat contoh package pada java, class disimpan ke dalam folder yang namanya berbeda. Contohnya seperti berikut 

import com.pckg.mobil.toyota
import com.pckg.mobil.lamborghini
import com.pckg.mobil.bmw

.

using System;
using System.Text;
using System.Console;

Dengan namespace, kita bisa memberikan nama class yang sama pada setiap foldernya, tanpa takut muncul pesan error seperti di bawah ini ketika memanggil dan menggunakan class tersebut.

Fatal error: Cannot redeclare class.......

Sekarang kita coba untuk mengimplementasikan penggunaan namespace yang sederhana di php. Monggo, buat rekan-rekan yang ingin berkenalan lebih jauh tentang namespace di php dan keunggulannya, bisa mengunjungi link berikut : http://php.net/manual/en/language.namespaces.php.

Global Namespace

Jika kita tidak mendeklarasikan nama namespace dan mendefiniskan class secara umum seperti contoh $car = new Car;, class tersebut akan otomatis masuk ke global namespace. Misalnya seperti kode di bawah ini :

<?php
include_once 'Car.php';

$car = new Car;
$car->drive();

Atau dengan penulisan lainnya seperti di bawah ini, dengan menambahkan backslah \, dimana akan memanggil class Car dari global namespace.

<?php
include_once 'Car.php';

$car = new \Car;
$car->drive();

Namespace

Sekarang bagaimana kita memanggil 4 buah class dengan nama yang sama yaitu ‘Car’ tanpa muncul pesan error seperti yang saya sebutkan di atas. Kita coba untuk membuat 3 buah class tambahan dengan nama yang sama, yaitu “Car”. Dan juga mempunyai method yang sama yaitu “drive()”. Kita pisahkan ke dalam beberapa folder dan struktur foldernya seperti di bawah ini :

index.php
Car.php
Bmw
	- Car.php
Lambhorgini
	- Car.php
Toyota
	- Car.php

Bmw/Car.php

<?php
namespace Bmw; //namespace kita deklarasikan terlebih dahulu

class Car {

    function drive()
    {
        echo 'Saya naik, BMW';
    }
}

Lamborghini/Car.php

<?php
namespace Lamborghini; //namespace kita deklarasikan terlebih dahulu

class Car {

    function drive()
    {
        echo 'Saya naik, Lamborghini';
    }
}

Toyota/Car.php

<?php
namespace Toyota; //namespace kita deklarasikan terlebih dahulu

class Car {

    function drive()
    {
        echo 'Saya naik, Toyota';
    }
}

index.php

<?php

include_once 'Car.php';
include_once 'Bmw/Car.php';
include_once 'Lamborghini/Car.php';
include_once 'Toyota/Car.php';

$car = new \Car;
$car->drive();

$bmw = new \Bmw\Car;
$bmw->drive();

$lamborghini = new \Lamborghini\Car;
$lamborghini->drive();

$toyota = new \Toyota\Car;
$toyota->drive();

Jika kita jalankan file index.php di browser, maka akan muncul tampilan seperti berikut tanpa adanya pesan error seperti biasanya

Saya naik, mobil

Saya naik, BMW

Saya naik, Lamborghini

Saya naik, Toyota

 sekarang dalam sekali jalan kita sudah bisa mengendarai 4 mobil secara bersamaan ;). Framework masa kini seperti laravel di dalam core system nya telah menggunakan namespace. Perlahan tapi pasti, bahasa pemrograman PHP mulai melangkah maju untuk bersaing dengan java, C#, ruby dan lainnya

0 Shares:
Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

You May Also Like