Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jonatã Cioni

[Resolvido] Autoload de Traits

Recommended Posts

falae galera, beleza?

 

bom... to com uma duvida cruel aki...

alguém aki jah trabalhou com autoload para Traits???

 

pq eu to precisando desenvolver esse recurso, o autoload para as classes em si esta funcionando...

 

mas queria saber como eu faço pra fazer para os Traits...

 

se alguém ai souber de algum tutorial ou fazer alguma ideia de como fazer, por favor, me ajude....

 

obrigado desde jah...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda não testei os novos recursos do 5.4!

 

autoload e pra incluir o arquivo, independente de ser um trait ou class!

 

Pelo q vi dos exemplos sempre criam, um trait em um arquivo q tmb tem uma class!

sendo assim qndo incluir a arquivo da class o trait já vai ta disponível pra todos objetos!

 

vo faze um teste aqui. so pra ve.

sua duvida não fez muito sentido pra mim =X

 

Bom man! testei aqui!

 

Realmente seu autoload ta com algum problema!

usando namespace rodo meus testes legal!

 

segue oq fiz

 

traits.php

namespace app;
trait traits {

   public function myTrait() {
       return "meu trait";
   }

}

 

teste.php

namespace app;
class teste { 
   use traits;
}

 

unit teste

 

namespace app;

class diversosTestes extends \PHPUnit_Framework_TestCase {

   public function testTrait() {
       $trait = new teste();
       $this->assertEquals(trait_exists('app\traits'),true);
       $this->assertEquals(is_string($trait->myTrait()), true);
   }

}

 

bom com namespace funciona normal como uma class msm !

 

Obs: Tendando ve alguma utilidade pra esse tal de Traits. kkkkkkkk..

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda não testei os novos recursos do 5.4!

 

autoload e pra incluir o arquivo, independente de ser um trait ou class!

 

Pelo q vi dos exemplos sempre criam, um trait em um arquivo q tmb tem uma class!

sendo assim qndo incluir a arquivo da class o trait já vai ta disponível pra todos objetos!

 

vo faze um teste aqui. so pra ve.

sua duvida não fez muito sentido pra mim =X

 

Bom man! testei aqui!

 

Realmente seu autoload ta com algum problema!

usando namespace rodo meus testes legal!

 

segue oq fiz

 

traits.php

namespace app;
trait traits {

   public function myTrait() {
       return "meu trait";
   }

}

 

teste.php

namespace app;
class teste { 
   use traits;
}

 

unit teste

 

namespace app;

class diversosTestes extends \PHPUnit_Framework_TestCase {

   public function testTrait() {
       $trait = new teste();
       $this->assertEquals(trait_exists('app\traits'),true);
       $this->assertEquals(is_string($trait->myTrait()), true);
   }

}

 

bom com namespace funciona normal como uma class msm !

 

Obs: Tendando ve alguma utilidade pra esse tal de Traits. kkkkkkkk..

 

kkkkkkkkkkkkk.... ter utilidade o bixo tem....rsrsrs mas ainda não estamos conseguindo encherga-las...rsrsrs

 

mas vlw, brother..

vou testar aki com o meu autoload... eh q eu não uso namespace... não gosto de usar...

mas vou fazer mais alguns testes aki com base nesse q tu fez...

 

brigadão, brother...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No momento trait e uma class abstrata, pra mim dão no msm, então fico com a sensação de trocar 6 por meia duzia usando esse trait kkkkkk....

 

tem um hangout hj, q vai fala de de traits vamo ve se da uma ideia ^^

 

bom man! Se você ta querendo brinca com Traits, tem q usa o melhor do php 5, NAMESPACE, vai facilita sua vida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Traits provêem herança horizontal ou, a grosso modo, heranças múltiplas. Sem elas, herança múltipla era classe estendendo classe, verticalmente, o que sobrecarregava o propósito do objeto.

 

Do ponto de vista Orientação a Objetos é quase um crime abraçá-las, no entanto existem defesas plausíveis com alguns propósitos específicos como um Singleton abstrato (mesmo que excesso de Singleton seja errado) ou mesmo ponte entre classes sem a necessidade de um __call.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.