Apa itu trait dalam php?

Assalamualaikum.. kembali lagi dengan saya Royyan. Kali ini kita akan belajar tentang Trait di PHP.

Kita akan berkenalan dengan fitur traits. Fitur traits ini agak mirip-mirip dengan interface yang kita pelajari di artikel yang berjudul PHP : What is different between abstract class and interface in PHP ? . Apa itu traits? Trait secara simple adalah kumpulan dari beberapa method yang ingin kalian pakai dalam class lain. Perbedaannya jika interface memiliki method yang harus diimplementasikan tiap kali digunakan. Nah sedangkan traits, ketika digunakan kita langsung daat menggunakan methodnya tanpa menulis lagi logic untuk method tersebut. Kenapa ini bisa dilakukan? Karena dalam trait sebuah method dideklarasikan berikut dengan logicnya.

Perhatikan contoh syntax berikut :

~/SinauPHP/code/traits/Sayap.php

Coba dilihat contoh diatas, ketika kita ingin mengimplementasikan interface sayap ke sebuah class, misal nih namanya class nya Ikan maka kita harusmengimplementasikan method terbang();

~/SinauPHP/code/traits/Ikan.php

Kebayang nggak tuh ikannya menjulang ke angkasa hehehe. Coba kita test

Ikan terbang ke angkasa dengan interface Sayap

Jadi gini kalau kita tidak membuat method terbang di class Ikan, maka yang terjadi adalah error. Berbeda dengan interface, traits mengizinkan kita untuk tidak menulis method yang berada di traits. Cukup menggunakan keyword use nama_traits dan semua method yang ada didalam traits langsungdapat digunakan di class kita, enak kan? :D

Perhatikan contoh syntax berikut :

Kita membuat traits

~/SinauPHP/code/traits/Keju.php

Penggunaan trait ini di class Jerry :

~/SinauPHP/code/traits/Jerry.php

Coba perhatikan contoh diatas kita nggak mendefinisikan logic dari method terbang() dari trait JetPack di class Jerry, coba kita test :

kesimpulannya adalah trait melakukan copy paste syntax dari trait ke class yang menggunakannya pada saat script dijalankan. Jadi laravel wajib menggunakan PHP 5.4 sebagai minimum. Karena, laravel menggunakan trait didalam core nya. Untuk pembahasan tenatng laravel dan trait akan kita pelajari di artikel selanjutnya.

Semoga bermanfaat Wassalamualaikum


In 5.4 PHP version trait is introduced to PHP object-oriented programming. A trait is like class however it is only for grouping methods in a fine-grained and reliable way. It isn't permitted to instantiate a trait on its own. Traits are introduced to PHP 5.4 to overcome the problems of single inheritance. As we know in single inheritance class can only inherit from one other single class. In the case of trait, it enables a developer to reuse sets of methods freely in several independent classes living in different class hierarchies.

Example

<?php
   trait Reader{
      public function add($var1,$var2){
         return $var1+$var2;
      }
   }
   trait writer {
      public function multiplication($var1,$var2){
         return $var1*$var2;
      }
   }
   class File {
      use Reader;
      use writer;
      public function calculate($var1,$var2){
         echo "Ressult of addition:".$this->add($var1,$var2) ."\n";
         echo "Ressult of multiplication:".$this->multiplication($var1,$var2);
      }
   }
   $o = new File();
   $o->calculate(5,3);
?>

Output

Result of addition two numbers:8
Result of multiplication of two numbers:15

Explanation

In the above example, we have implemented a function from two traits in a single class. Due to trait, we are able to access multiple functions in a single class.

Note

We are using the "USE" keyword to access traits inside a class.

Updated on 29-Jun-2020 12:02:51

  • Related Questions & Answers
  • PHP Traits
  • From and Into Traits In Rust Programming
  • What is .htaccess in PHP?
  • Difference between Traits and Abstract Classes in Scala.
  • What is method overloading in PHP?
  • What is header() function in PHP?
  • What is explode() function in PHP?
  • What is implode() function in PHP?
  • What is dependency injection in PHP?
  • What is Exception Handling in PHP ?
  • What is Trailing Comma in PHP?
  • What is PHP Output Buffering?
  • What is singleton design concept in PHP?
  • What is Stringable Interface in PHP 8?
  • What is the use of ini_set() in PHP?

Apa itu trait dalam PHP?

Trait adalah suatu mekanisme dimana suatu class diizinkan untuk menggunakan kembali kode program (code reuse) yang berasal dari hirarki yang berbeda.

Apa fungsi traits?

Traits memungkinkan kamu untuk menambahkan fungsi ke dalam sebuah class dengan mudah. Namun Traits bukanlah jawaban untuk semua masalah kamu. Menggunakan Traits secara tidak pas juga bisa mengarah pada masalah baru yaitu sebuah class memiliki banyak fungsi yang seharusnya tidak dimilikinya.

Apa itu trait pada laravel?

Trait adalah salah satu fitur pada pemrograman bahasa PHP yang sebetulnya bertujuan untuk menyelesaikan masalah yang dialami pada Class PHP..