DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja

Logo Koala Skodev mengetik

Skodev

Belajar coding dalam bahasa Indonesia

TRAITS

Panduan menggunakan Traits dalam PHP untuk meningkatkan kereusability dan fleksibilitas kode.

Traits adalah mekanisme dalam PHP yang digunakan untuk menyediakan metode-metode yang dapat digunakan kembali di dalam kelas yang berbeda-beda. PHP adalah bahasa pemrograman yang tidak mendukung multiple inheritance secara langsung, dan Traits memberikan solusi untuk masalah tersebut.

Pengertian Traits

Traits mirip seperti kelas, tapi bukan untuk diinstansiasi secara langsung. Traits digunakan untuk mendefinisikan metode yang dapat disertakan di dalam kelas lain. Tujuan utamanya adalah untuk mengurangi keterbatasan single inheritance di PHP dengan memungkinkan developer untuk menggunakan kembali set kode dalam beberapa kelas.

Cara Mendefinisikan Trait

Untuk mendefinisikan trait, kamu menggunakan keyword trait diikuti dengan nama trait dan sebuah block kode.

trait Sharable {
    public function share($item) {
        echo "Sharing {$item}";
    }
}

Menggunakan Traits di Kelas

Setelah mendefinisikan trait, kamu bisa menggunakannya di dalam kelas dengan menggunakan keyword use di dalam kelas tersebut.

class Post {
    use Sharable;
}

class Comment {
    use Sharable;
}

Kedua kelas di atas, Post dan Comment, kini memiliki metode share yang didefinisikan dalam trait Sharable.

Traits yang Menyertakan Properties

Selain metode, traits juga bisa memiliki properties. Kamu bisa menambahkan properties ke dalam trait, dan properties tersebut akan menjadi bagian dari kelas yang menggunakan trait tersebut.

trait Identifier {
    public $id;
    
    public function setId($id) {
        $this->id = $id;
    }
}

Prioritas Konflik

Ketika sebuah kelas menggunakan lebih dari satu trait yang memiliki metode dengan nama yang sama, akan terjadi konflik. PHP tidak akan tahu metode mana yang harus digunakan. Kamu bisa menentukan secara eksplisit metode mana yang harus digunakan dengan keyword insteadof.

trait A {
    public function sayHello() {
        echo 'Hello from Trait A';
    }
}

trait B {
    public function sayHello() {
        echo 'Hello from Trait B';
    }
}

class Talker {
    use A, B {
        B::sayHello insteadof A;
    }
}

Dalam contoh di atas, kelas Talker akan menggunakan sayHello dari Trait B ketimbang Trait A.

Aliasing Methods

Kamu juga bisa mengganti nama metode dari trait ketika digunakan dalam kelas dengan keyword as. Ini berguna untuk menghindari konflik nama metode atau untuk menyediakan nama yang lebih sesuai untuk konteks kelas tersebut.

class Talker {
    use A, B {
        B::sayHello insteadof A;
        A::sayHello as sayHelloFromA;
    }
}

Keuntungan Penggunaan Traits

  • Daur Ulang Kode: Dengan Traits, kamu bisa menulis metode sekali dan menggunakannya di banyak kelas.
  • Fleksibilitas: Traits meningkatkan fleksibilitas kode dengan memungkinkan kombinasi dari berbagai metode yang berasal dari traits yang berbeda.

Penggunaan Traits di PHP membantu programmer untuk menulis kode yang lebih bersih, modular, dan reusable. Diharapkan dengan memahami dan mengimplementasikan traits, kamu bisa mengembangkan aplikasi PHP yang lebih efisien dan terorganisir.

👈🏼 Namespace
Autoloading 👉🏼