PHP OOP에서 여러 트레이트 사용하기
클래스에서 하나가 아닌 여러 개의
트레이트를 사용할 수 있습니다. 이것이 상속보다
트레이트가 가지는 장점입니다. 클래스에서 사용할
트레이트들은 키워드 use 뒤에 쉼표로 구분하여
나열할 수 있습니다.
예제를 통해 살펴보겠습니다. 두 개의 트레이트가 있다고 가정해 봅시다. 첫 번째:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
두 번째:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
이제 우리 클래스에서 트레이트들을 사용해 보겠습니다:
<?php
class User
{
use Helper1, Helper2; // 트레이트 연결
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Trait1,
Trait2, Trait3라는 이름의 트레이트 3개를 만드세요.
첫 번째 트레이트에는
1을 반환하는 method1 메서드를,
두 번째 트레이트에는 2을 반환하는
method2 메서드를, 세 번째 트레이트에는
3을 반환하는 method3 메서드를
포함시키세요. 이 모든 메서드는 private으로 설정하세요.
방금 생성한 세 트레이트를 모두 사용하는
Test 클래스를 만드세요. 이 클래스에
public 메서드 getSum를 만들어,
연결된 트레이트들의 메서드 결과값의 합계를
반환하도록 하세요.