Penggunaan fungsi NAMESPACING pada PHP

16/04/2016    Ekky Ridyanto    2799    Website

Penggunaan fungsi NAMESPACING pada PHP

Mari kita belajar cara penggunaan namespace di php. Fitur tersebut sudah ada sejak php versi 5.3 untuk memahami penggunaan namespace dan apa manfaatnya mari kita buat kasus sederhana. Misalnya ketika teman teman bekerja di suatu proyek biasanya terdapat beberapa library yang kita gunakan dan didalam library tersebut biasanya terdapat penamaan class yang sama. oke kita buat class email yang tujuannya ingin mengirim pesan yang satu lewat gmail dan yang kedua lewat yahoo dan saya buat sebuah method send() sebagai berikut

sementara yang satu lagi kita buat class yang sama tapi kirim email lewat yahoo.

kita buat objek dari suatu classnya seperti biasa

dan misalnya kita jalankan class tersebut maka akan ada sintaks error karena kita mencoba membuat class yang sama.

Untuk itu kita butuh yang namanya fitur namespace ini caranya mudah kita berikan keyword namespace lalu dikuti namanya sebelum mendeklarasikan classnya misalnya seperti berikut

jika ingin menggunakan class yang sudah didalam namespacenya maka kita ketikan \namanamespacenya\namaclassnya sebagai berikut

kemudian kita coba jalankan maka kita dapat hasil yang dinginkan inilah salah satu dari manfaat dari namespace. Jadi class yang ada dibawah namespace ini akan mengacu pada nama namespace tersebut. Terima kasih.

No data.

09/06/2015    Rido Sandi Atmanto    9343    Website

Penggunaan fungsi NAMESPACING pada PHP

Halo teman-teman DumetSchool!

Dalam PHP versi <5.3 , penulisan nama class tidak diperbolehkan meskipun itu berada di folder yang berbeda. PHP versi 5.3 keatas sudah mendukung fitur namespace. Fitur ini adalah untuk menghindari error saat menggunakan nama class yang sama.

Kan ada banyak nama, kenapa masih pakai nama yang sama juga.

Alasanya untuk pembuatan aplikasi dalam skala besar, penamaan yang menggambarkan kelompoknya akan memudahkan kita. Sehingga tidak perlu membuat terlalu banyak nama class di script kita.

Misalkan untuk jenis smartphone Lennovo, Samsung, Apple, Xiaomi. Semuanya termasuk dalam kelompok Smartphone.

Untuk lebih jelasnya kita praktek saja ya. Buatlah struktur folder dan file seperti berikut ini

Penggunaan fungsi NAMESPACING pada PHP

Kemudian Edit file Smartphone.php yang ada diluar menjadi seperti berikut :

Penggunaan fungsi NAMESPACING pada PHP

Edit file Smartphone.php yang ada di folder IPhone dengan script dibawah ini

Penggunaan fungsi NAMESPACING pada PHP

Begitu juga untuk file Smartphone.php yang ada di folder Lennovo dan Samsung

Penggunaan fungsi NAMESPACING pada PHP

File Smartphone.php di folder Samsung.

Penggunaan fungsi NAMESPACING pada PHP

Terakhir, edit file index.php menjadi seperti berikut ini :

Maka akan menghasilkan output semua daftar Smartphone

Jika teman teman ingin mencoba, hapus semua namespace yang ada disetiap file. Hasilnya akan muncul error

Dengan namespace maka kita tidak perlu takut dianggap mendeklarasi ulang class jika nama class-nya sama.

Happy Coding dan semoga bermanfaat

No data.

بسم الله الرحمن الرحيم

Penggunaan fungsi NAMESPACING pada PHP

Perkenalan dengan NameSPace

Halo gaess apa kabarnya kalian semua ? Semoga baik-baik selalu yah gaes.
Artikel kali ini adalah artikel pertama saya tentang PHP, sebuah bahasa BackEnd yang telah lama diandalkan para web developer di bumi ini.
dalam artikel ini saya akan membahas salah satu fitur di PHP yaitu NameSpace. Yuk langsung ajah kita simak

namespace

Namespaces adalah kualifikasi yang menyelesaikan dua masalah berbeda:

  • Memungkinkan pengorganisasian yang lebih baik dengan mengelompokkan kelas-kelas yang bekerja sama untuk melakukan tugas
  • Memungkinkan nama yang sama digunakan untuk lebih dari satu kelas

Misalnya, Kalian mungkin memiliki satu set kelas yang mendeskripsikan tabel HTML, seperti Tabel, Baris dan Sel, sementara juga memiliki satu set kelas lain untuk mendeskripsikan furnitur, seperti Meja, Kursi dan Tempat Tidur. Namespaces dapat digunakan untuk mengatur kelas menjadi dua kelompok yang berbeda dan juga dapat mencegah dua kelas agar tidak tercampur.

Deklarasi NameSPace

Untuk menggunakan namespace dalam project kita, kita bisa lakukan seperti ini :

<?php 
namespace NamaNameSPace;
// alur program

dalam artikel ini gout akan praktekan langsung dari script nya saja yah gaes, ok Langsung disimak aja :

Buat direktori baru dengan nama namespace/, lanjut akses direktori namespace/, lanjut lagi buat satu file baru di direktori tersebut touch index.php, kemudian buat direktori baru didalam direktori namespace/ dengan nama app/. Selanjutnya kita buka direktori namespace/ di code editor kesayangan kita.

dalam artikel ini saya akan membuat sebuah fungsi aritmatika sederhana dengan php dengan metode OOP dan kita akan memanfaatkan fitur namespace untuk membundle setiap method yang akan kita deklarasikan.

selanjutnya buat beberapa direktori baru, diantaranya :

--------------------------------
 namespace/         
--------------------------------  
  app/            
    BaseClass/        
      BaseClass.php     
    Add/          
      Add.php           
    Substract/        
      Substract.php     
    Multiply/       
      Multiply.php      
    Devide/         
      Devide.php       
    Modulus/        
      Modulus.php      
    GanjilGenap/      
      GanjilGenap.php   

    init.php             
---------------------------------

index.php

seperti itu yah susunan direktori untuk belajar namespace di artikel kali ini. Edit tiap-tiap file di code editor kita :
pertama-tama kita akan edit file untuk BaseClass/ : file: BaseClass.php :

<?php
/*
file : app/BaseClass/BaseClass.php
pujiermanto(codesyariah - 2019)
*/
namespace app\BaseClass;

  class BaseClass{

  private $result;

   public static function sayHallo(){

   return
   "<style>
     .hasil{
      color:salmon;
      font-size:25px;
      font-weight:bold;
           }
      .hasil-ganjil{
       color:orange;
       font-size:25px;
       font-weight:bold,italic;
           }

      .hasil-genap{
       color:salmon;
       font-size:25px;
       font-weight:bold;
           }

      .hasil-err{
       color:#CC0000;
       font-size:25px;
       font-weight:bold,italic;
           }

      .persen{
       color:orange;
       font-size:25px;
       font-weight:bold;
           }
    </style>

    <h2>Selamat Datang...</h2>
     <br/>
  <h4> Anda sedang berada di :<span class='hasil'> ".BaseClass::class."</span></h4>
  ";

   }

}

selanjutnya file : Add.php atau pertambahan

<?php
/*
file : app/Add/Add.php
pujiermanto(codesyariah - 2019)
*/
namespace app\Add;

class Add extends \app\BaseClass\BaseClass{

  //Setup calculator method
  public function getAdd($a,$b){

    $this->result=$a + $b;

    echo "Sum of {$a} and {$b}
    is
    <span class='hasil'>
    {$this->result}</span>
    <br>\n";
  }

}

Lanjut lagi file selanjutnya yaitu : Substract.php atau pengurangan

<?php
/*
file : app/Substract/Substract.php
pujiermanto(codesyariah - 2019)
*/
namespace app\Substract;

class Substract extends \app\BaseClass\BaseClass{

  //Setup calculator method
  public function getSub($a,$b){

    $this->result=$a - $b;
    
    echo "Substract of {$a} and {$b}
    is
    <span class='hasil'>
    {$this->result}</span>
    <br>\n";
  }

}

Lanjut adalah file : Multiply.php atau pembagian

<?php
/*
file : app/Multiply/Multiply.php
pujiermanto(codesyariah - 2019)
*/

namespace app\Multiply;

class Multiply extends \app\BaseClass\BaseClass{

  public function getMult($a,$b){

    $this->result=$a * $b;

    echo "Multiply of {$a} and {$b}
    is
    <span class='hasil'>
    {$this->result}
    </span>
    <br>\n";

  }


}

Lanjut lagi untuk file : Divide.php atau pembagian

<?php
/*
file : app/Devide/Devide.php
pujiermanto(codesyariah - 2019)
*/

namespace app\Divide;

class Divide extends \app\BaseClass\BaseClass{

  public function getDiv($a,$b){

    $this->result=$a / $b;

    echo "Divide of {$a} and {$b}
    is
    <span class='hasil'>
    {$this->result}
    </span>
    <br>\n";
  }


}

Selanjutnya lagi adalah file : Modulus.php atau sisa bagi

<?php
/*
file : app/Modulus/Modulus.php
pujiermanto(codesyariah - 2019)
*/
namespace app\Modulus;
class Modulus extends \app\BaseClass\BaseClass{

  public function getMod($a,$b){
    $this->result=$a % $b;

    echo "Modulus of {$a} and {$b} is <span class='hasil'> {$this->result} </span><br>".PHP_EOL;

  }
}

Dan terakhir kita buka file : GanjilGenap.php Untuk menentukan type suatu bilangan

<?php
/*
file : app/GanjilGenap/GanjilGenap.php
pujiermanto(codesyariah - 2019)
*/
namespace app\GanjilGenap;

class GanjilGenap extends \app\BaseClass\BaseClass{

  public function getGanjilGenap($n=11){
    $this->result=$n;
    if($this->result % 2===0 && is_integer($this->result)):

    echo "<span class='hasil-genap'>{$this->result}</span> adalah sebuah integer Bilangan Genap";

    elseif($this->result%2===1 && is_integer($this->result)):

    echo "<span class='hasil-ganjil'>{$this->result}</span> adalah sebuah integer Bilangan Ganjil";

    else:

    echo "<span class='hasil-err'>{$this->result}</span> is string (Bukan Integer)";
    endif;
  }
}

Setelah semua file di direktori app/ sebagai direktori utama untuk menyimpan class aplikasi sederhana kita, lanjut kita buka satu file baru yaitu file : init.php yang dimana fungsi init ini adalah sebagai jalur untuk memanggil tiap tiap class yang ada di direktori app/.

<?php 
/*
file : app/init.php
pujiermanto(codesyariah - 2019)
*/

require_once 'BaseClass/BaseClass.php';
require_once 'Add/Add.php';
require_once 'Substract/Substract.php';
require_once 'Multiply/Multiply.php';
require_once 'Divide/Divide.php';
require_once 'Modulus/Modulus.php';
require_once 'GanjilGenap/GanjilGenap.php';

use \app\BaseClass\BaseClass;
use \app\Add\Add;
use \app\Substract\Substract;
use \app\Multiply\Multiply;
use \app\Divide\Divide;
use \app\Modulus\Modulus;
use \app\GanjilGenap\GanjilGenap;

$base = new BaseClass;

$add = new Add;

$sub = new Substract;

$mult = new Multiply;

$div = new Divide;

$mod = new Modulus;

$x = new GanjilGenap;

Kemudian terakhir kita buka file index.php di direktori utama kita yaitu direktori namespace/.

<?php
/*
file : index.php (di root folder)
pujiermanto(codesyariah - 2019)
*/

require_once(dirname(__FILE__)) .'/app/init.php';


echo $base::sayHallo();

//yuk Bayar zakat
// $zakat->setZakat(3000000,2000000);
// $zakat->getZakat();

$add->getAdd(5,4);

$sub->getSub(10,5);

$mult->getMult(100.55,45.01);

$div->getDiv(100.5,2500.4);

$mod->getMod(10,2);

$x->getGanjilGenap(19);

Kesimpulan

Ok saatnya menjabarkan, disini saya akan bahas dari file init.php di root direktori app/, file ini berfungsi untuk memanggil tiap tiap class yang akan kita gunakan di file index.php di root direktori aplikasi kita, selanjutnya file init.php ini juga menginstansiasi sejak awal dari tiap-tiap class yang akan di deklarasikan nanti di file index.

selanjutnya tiap-tiap class sebagai contoh misalnya saya akan jabarkan class app\BaseClass : class ini adalah class utama kita coba perhatikan pada bagian namespacenya namespace app\BaseClass, namespace tersebut adalah penggunaan namespace dengan indikasi nama_direktori\nama_class nya, kalian bebas untuk membuat namespace apapun tidak perlu sama dengan yang saya buat, yang penting faham bagaimana algoritma dari fitur namespace ini.

Ok yahh … mudah difahami kan, kalian harus mencobanya langsung di web server kalian, sesuai dengan prinsip pemrogramman yaitu amati, tiru dan modifikasi. Mungkin selanjutnya kita akan membahas Autoloader PSR untuk memudahkan dalam mengelola tiap file yang akan digunakan. Ok ! Sekian dari saya.

saya harap tulisan ini dapat bermanfaat untuk kalian.

Implementasi namespace serupa ada di repository berikut :

Learn WebDev

salam

Puji Ermanto

Apa fungsi use pada PHP?

Kata kunci use memiliki dua tujuan: memberi tahu kelas untuk mewarisi sifat dan memberikan alias ke namespace.

Jelaskan apa fungsi namespace?

Apa Fungsi Dari Namespace? .NET menggunakan namespace sebagai cara untuk memisahkan file-file class kedalam kategori yang terkait (mengorganisir cakupan kategori). Selain itu, penggunaan namespace juga bisa membantu menghindari bentroknya penamaan dalam aplikasi yang mungkin berisi beberapa class dengan nama yang sama.

Apa itu namespace di PHP?

Namespaces PHP Namespaces adalah kualifikasi yang menyelesaikan dua masalah berbeda, yaitu: Mereka memungkinkan pengorganisasian yang lebih baik dengan mengelompokkan kelas-kelas yang bekerja sama untuk melakukan tugas. Mereka memungkinkan nama yang sama digunakan untuk lebih dari satu kelas.