3
respostas

Erro Bonificacoes.php

Erro

C:\Users\Daniela Conceiçao\Documents\Alura curso\PHP>php bonificacoes.php
PHP Fatal error:  Uncaught Error: Class 'adicionaBonificacaoDe' not found in C:\Users\Daniela Conceiçao\Documents\Alura curso\PHP\bonificacoes.php:13
Stack trace:
#0 {main}
  thrown in C:\Users\Daniela Conceiçao\Documents\Alura curso\PHP\bonificacoes.php on line 13

Fatal error: Uncaught Error: Class 'adicionaBonificacaoDe' not found in C:\Users\Daniela Conceiçao\Documents\Alura curso\PHP\bonificacoes.php:13
Stack trace:
#0 {main}
  thrown in C:\Users\Daniela Conceiçao\Documents\Alura curso\PHP\bonificacoes.php on line 13

Funcionario.php

<?php

namespace Alura\Banco\Modelo;

class Funcionario extends Pessoa 
{
    private $cargo;
    private $salario;

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

    public function recuperaCargo(): string 
    {
        return $this->cargo;
    }

    public function alteraNome(string $nome): void 
    {
        $this->validaNomeTitular($nome);
        $this->nome = $nome;
    }

    public function recuperaSalario(): float 
    {
        return $this->salario;
    }

    public function calculaBonificacao(): float 
    {
        return $this-> salario * 0.1;
    }

}


ControladorDeBonificacoes.php

<?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;
}

}

bonificacoes.php

<?php

require_once 'autoload.php';

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

$umFuncionario = new Funcionario('Vinicius Dias', new CPF('123.456.789-10'), 'Desenvolvedor', '1000');

$umaFuncionaria = new Funcionario('Patricia Reis', new CPF('987.654.321-10'), 'Gerente', '3000');

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

echo $controlador->recuperaTotal();
3 respostas

Olá Daniela,

o problema esta na linha 13 do arquivo "bonificacoes.php" :

$controlador = new adicionaBonificacaoDe($umFuncionario);

Se observarmos bem, "adicionaBonificacaoDe()" é um método da classe "ControladorDeBonificacoes()" e portanto não deveria estar sendo instanciada utilizando a palavra reservada "new".

Na realidade o mesmo deveria ser realizado da seguinte forma: $controlador->adicionaBonificacaoDe($umFuncionario) ;

Oi Flávio, tudo blza? Agora nao ta dando erro e sim Acesso Negado, o que pode ser? Pode me ajudar a resolver?

C:\Users\Daniela Conceiçao\Documents\Alura curso\PHP>php bonificacoes.php
Accesso negato.

C:\Users\Daniela Conceiçao\Documents\Alura curso\PHP>

Como estão as permissões da pasta e do arquivo?

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