Curso POO PHP Trazos
Trazos
Os trazos (en inglés traits) apareceron na versión 5.4 da linguaxe. É un mecanismo que permite agrupar propiedades e métodos comúns a varias clases. Non son clases, e por tanto non poden ser instanciados.
Para usar un trazo dende unha clase emprégase o operador use. O resultado de usar un trazo dende unha clase é similar a copiar e pegar o seu contido dentro da clase. Por exemplo, podemos empregar traits para resolver o problema da herdanza de métodos estáticos do seguinte xeito.
trait Produto {
private static $num_produtos = 0;
public static function novoProduto() {
self::$num_produtos++;
}
}
class TV {
use Produto;
…
}
class Ordenador {
use Produto;
…
}
Os trazos non son un mecanismo de herdanza. Por exemplo, cando un trait contén unha propiedade ou un método privado, como no exemplo anterior, este pode ser accedido dende a clase ou clases que fan uso do trait.
Poden ser empregados en calquera clase independentemente á estrutura xerárquica de herdanza existente. Tamén é posible crear clases que empreguen dous ou máis trazos ao mesmo tempo, separando os seus nomes por unha coma.
class Ordenador {
use Produto, Singleton;
…
}
--Víctor Lourido 13:07 1 ago 2013 (CEST)