【翻译】Traits in PHP
Trait 本质上是无状态的mixin,是PHP解释器自动完成的『粘贴&拷贝』,区别于继承,它提供的重用是水平性的,很好地提高了代码的可重用。然而错误使用会造成冲突,BUG难以调试。先来看看 trait 的其中一种正确使用方式。 interface Logger { public function log($message, $level); } class DemoLogger implements Logger { public function log($message, $level) { echo "Logged message: $message with level $level", PHP_EOL; } } trait Loggable // implements Logger { protected $logger; public function setLogger(Logger $logger) { $this->logger = $logger; } public function log($message, $level) { $this->...