Múltiples traits en POO en PHP
En una clase se pueden utilizar no uno, sino varios
traits. En esto radica su ventaja
frente a la herencia. Los traits necesarios para su uso
en la clase se pueden indicar separados por comas
después de la palabra clave use.
Veamos un ejemplo. Supongamos que tenemos dos traits. El primero:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
El segundo:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Utilicemos nuestros traits en una clase:
<?php
class User
{
use Helper1, Helper2; // conectamos los traits
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Crea 3 traits con los nombres Trait1,
Trait2 y Trait3. Que en el primer
trait haya un método method1, que devuelva
1, en el segundo trait - un método method2,
que devuelva 2, y en el tercer trait
- un método method3, que devuelva 3.
Que todos estos métodos sean privados.
Crea una clase Test, que utilice
los tres traits creados por nosotros. Crea en
esta clase un método público getSum,
que devuelva la suma de los resultados de los métodos de los traits
conectados.