Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Fatal error: Uncaught Error: Class "Alura\Banco\Service\ControladorDeBonificacoes" not found

Prezados,

Estou com o seguinte erro:

Fatal error: Uncaught Error: Class "Alura\Banco\Service\ControladorDeBonificacoes" not found in C:\Users\ELAINE\Documents\Estudos\Programação\PHP\oo\bonificacoes.php:22 Stack trace:

#0 {main} thrown in C:\Users\ELAINE\Documents\Estudos\Programação\PHP\oo\bonificacoes.php on line 22

Alguém me ajuda por favor?

pastas

<?php

namespace Alura\Banco\Service;

use Alura\Banco\Modelo\Funcionario;

class ControladorDeBonificacoes
{
    private $totalBonificacoes = 0;

    public function adicionaBonificacaoDe(Funcionario $funcionario)
    {
        $this->totalBonificacoes += $funcionario->calculaBonificacao();
    }

    public function recuperaTotal(): float
    {
        return $this->totalBonificacoes;
    }
}
<?php

namespace Alura\Banco\Modelo;

use Alura\Banco\Modelo\CPF;
use Alura\Banco\Modelo\Pessoa;

class Funcionario extends Pessoa{

    private string $cargo;
    private float $salario;

    public function __construct(string $nome, CPF $cpf, string $cargo, float $salario)
    {
        parent::__construct($nome, $cpf);
        $this->cargo = $cargo;
        $this-> salario = $salario;
    }

    public function alteraNome($nome): void{

        $this->nome = $this->validaNome($nome);
    }

    public function recuperaCargo(): string{

        return $this->cargo;
    }

    public function recuperaSalario(): string{

        return $this->salario;
    }

    public function calculaBonificacao(): float{

       return $this->salario * 0.1;
    }

}
<?php

require_once 'autoload.php';

use Alura\Banco\Modelo\{CPF, Funcionario};
use Alura\Banco\Service\ControladorDeBonificacoes;

$umFuncionario = new Funcionario(
    'Vinicius Dias',
    new CPF('01301768855'),
    'Desenvolvedor',
    1000
);

$umaFuncionaria = new Funcionario(
    'Patricia',
    new CPF('49666302829'),  
    'Gerente',
    3000
);

$controlador = new ControladorDeBonificacoes();
$controlador->adicionaBonificacaoDe($umFuncionario);
$controlador->adicionaBonificacaoDe($umaFuncionaria);

echo $controlador->recuperaTotal();

<?php

spl_autoload_register(function (string $nomeCompletoDaClasse){
    $caminhoArquivo = str_replace('Alura\\Banco', 'src', $nomeCompletoDaClasse);
    $caminhoArquivo = str_replace('\\', DIRECTORY_SEPARATOR, $caminhoArquivo);
    $caminhoArquivo .= '.php';

    if(file_exists($caminhoArquivo)) {
        require_once $caminhoArquivo;
    }
});
2 respostas
solução!

Oi, Elaine, parece q está faltando a extensão .php em 'ControladorDeBonificacoes'

Obrigada, Luiz ♥

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