Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Import em Traits

Gostaria de saber como funcionam os imports em traits. Digo isso, pois estou usando namespace, e minha ideia era utilizar uma trait para várias classes, porém, a função que está no meu trait muda dependendo da classe. Por exemplo:

trait TraitFlow
{
    public function foo(){
        $teste = new Teste();
    }
}

Nesse caso, a classe Teste é a classe que quero instanciar, porém, dependendo da classe que está usando a trait, essa classe Teste muda. Basicamente tenho várias classes Teste mas em namespaces diferentes. Minha ideia inicial era não fazer o import na trait, não fazer o "use Teste", e deixar essa responsabilidade pra classe principal, mas isso não está funcionando. Ao que parece preciso importar todas as classes que utilizo dentro da própria trait.

1 resposta
solução!

Nesse caso utilize uma classe abstrata, e na classe que você for utilizar ela faça um extends. Quando você precisar mudar a implementação da classe Teste apenas sobrescreva o método foo que faz a instância da classe Teste!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software