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

Erro na hora de usar a trait

Quando eu vou executar o meu código, o php dá o seguinte erro:

PHP Fatal error: Trait 'Alura\Banco\Modelo\AcessoPropriedades' not found in C:\Users\Aure\Dropbox\Cursos Alura\PHP\php-orientacao-objetos\projeto\src\Modelo\Pessoa.php on line 7

!---- Eis aqui minha classe pessoa ----!

<?php

namespace Alura\Banco\Modelo;

class Pessoa {

use AcessoPropriedades;

protected $nome;
private $cpf;

public function __construct(string $nome, Cpf $cpf) 
{    
    $this->validaNome($nome);
    $this->nome = $nome;
    $this->cpf = $cpf;
}

public function getNome():string
{
    return $this->nome;
}

public function getCpf():string
{
    return $this->cpf->getCpf();
}

final protected function validaNome (string $nome)
{
    if(strlen($nome) < 5) {
        echo "Nome precisa ter pelo menos 5 caracteres";
        exit();
    }
}

}

!---- Eis aqui minha trait AcessoPropriedades ----!

<?php

namespace Alura\Banco\Modelo;

trait AcessoPropriedades { public function __get(string $nomeAtributo) { $metodo = 'get' . ucfirst($nomeAtributo); return $this->$metodo(); } }

!---- eis aqui o código de execução ----!

<?php

require_once 'autoload.php';

use Alura\Banco\Modelo\Cpf; use Alura\Banco\Modelo\Funcionario\Desenvolvedor;

$umDesenvolvedor = new Desenvolvedor('Alberto Silveira da Cruz', new Cpf('111.222.333-44'), 3000 );

echo $umDesenvolvedor->nome;

1 resposta
solução!

Eu tinha escrito uma letra errada no nome do arquivo :p