Curso POO PHP Trazos

De Manuais Informática - IES San Clemente.
Revisión del 12:20 1 ago 2013 de Vlourido (discusión | contribs.) (→‎Trazos)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

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)