问题
Traits are much more efficient than behaviors as behaviors are objects that take both time and memory.so can anyone explain how i can write trait in yii2 ?
回答1:
In General:
A Trait is similar to a class, but only intended to group functionality in a fine-grained and consistent way. It is not possible to instantiate a Trait on its own.
<?php
trait Hello {
public function sayHello() {
echo 'Hello ';
}
}
trait World {
public function sayWorld() {
echo 'World';
}
}
class MyHelloWorld {
use Hello, World;
public function sayExclamationMark() {
echo '!';
}
}
$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>
Use behavior then traits mainly for YII.
Check this out:
http://www.yiiframework.com/doc-2.0/guide-concept-behaviors.html#comparison-with-traits
Reasons to Use Behaviors:
Behavior classes, like normal classes, support inheritance. Traits, on the other hand, can be considered as language-supported copy and paste. They do not support inheritance.
来源:https://stackoverflow.com/questions/34649600/how-to-write-trait-in-yii2