Name Space

5
Ahhh,,, apalagi itu namespace?? Itu yang muncul di benak saya setahun yang lalu ketika php 5.3 resmi dirilis. Ketika itu saya tidak terlalu begitu menaruh perhatian lebih pada fitur baru yang disematkan pada php. Dan beberapa minggu yang lalu, kebetulan ada teman yang meminta bantuan saya mengerjakan tugas C# di kampusnya. Saat itu juga, saya ingat kembali dengan fitur namespace yang ada di php. Ketika saya mencoba kembali meraba-raba C# yang sudah lama tidak saya jamah lagi, disana saya bertemu lagi dengan namespace. Saya baru paham saat itu juga, ohhh…ternyata ini toh fungsi namespace di php :D. 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 : 1 import com.pckg.mobil.toyota 2 import com.pckg.mobil.lamborghini 3 import com.pckg.mobil.bmw Pada C#, biasanya seperti berikut : 1 using System; 2 using System.Text; 3 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. 1 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

description

namespace php

Transcript of Name Space

Page 1: Name Space

Ahhh,,, apalagi itu namespace?? Itu yang muncul di benak saya setahun yang lalu ketika php 5.3 resmi dirilis. Ketika itu saya tidak terlalu begitu menaruh perhatian lebih pada fitur baru yang disematkan pada php. Dan beberapa minggu yang lalu, kebetulan ada teman yang meminta bantuan saya mengerjakan tugas C# di kampusnya. Saat itu juga, saya ingat kembali dengan fitur namespace yang ada di php. Ketika saya mencoba kembali meraba-raba C# yang sudah lama tidak saya jamah lagi, disana saya bertemu lagi dengan namespace. Saya baru paham saat itu juga, ohhh…ternyata ini toh fungsi namespace di php :D.

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 :

1 import com.pckg.mobil.toyota

2 import com.pckg.mobil.lamborghini3 import com.pckg.mobil.bmw

Pada C#, biasanya seperti berikut :

1 using System;

2 using System.Text;3 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.

1 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 :

1 <?php

2 include_once 'Car.php';

3  

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

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

Page 2: Name Space

1 <?php

2 include_once 'Car.php';

3  

4 $car = new \Car;5 $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 :

1 index.php

2 Car.php

3 Bmw

4     - Car.php

5 Lambhorgini

6     - Car.php

7 Toyota

8     - Car.php

Bmw/Car.php

1 <?php

2 namespace Bmw; //namespace kita deklarasikan terlebih dahulu

3  

4 class Car {

5  

6     function drive()

7     {

8         echo 'Saya naik, BMW';9     }

10 }

Lamborghini/Car.php

1 <?php

2 namespace Lamborghini; //namespace kita deklarasikan terlebih dahulu

3  

Page 3: Name Space

4 class Car {

5  

6     function drive()

7     {

8         echo 'Saya naik, Lamborghini';9     }

10 }

Toyota/Car.php

1 <?php

2 namespace Toyota; //namespace kita deklarasikan terlebih dahulu

3  

4 class Car {

5  

6     function drive()

7     {

8         echo 'Saya naik, Toyota';9     }

10 }

index.php

1 <?php

2  

3 include_once 'Car.php';

4 include_once 'Bmw/Car.php';5 include_once 'Lamborghini/Car.php';

6 include_once 'Toyota/Car.php';

7  

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

10  

11 $bmw = new \Bmw\Car;

12 $bmw->drive();

13  

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

16  

Page 4: Name Space

17 $toyota = new \Toyota\Car;

18 $toyota->drive();

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

1 Saya naik, mobil

2  

3 Saya naik, BMW

4  

5 Saya naik, Lamborghini

6  

7 Saya naik, Toyota

Jreeeenggg, 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 :D.