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

Fatal erro, ao extender a classe Funcionario dentro da classe funcionário Autenticável

Segue código abaixo para auxiliar na compreensão do código:

FuncionarioAutenticavel.php

<?php

namespace classes\abstratas;


use classes\abstratas\Funcionario;

 class FuncionarioAutenticavel extends Funcionario{


    public $senha;


    public function autenticar($senha){

        return $this->senha == $senha;
    }


}
?>

Diretor.php

<?php
namespace classes\funcionarios;

use classes\abstratas\FuncionarioAutenticavel; 
use classes\abstratas\Funcionario;

class Diretor extends FuncionarioAutenticavel{
    public function getBonificacao(){


        return $this->salario * 0.5;

    }    
}

?>

Funcionario.php

<?php

namespace classes\abstratas;

class Funcionario{

    public $nome;
    public $cpf;
    protected $salario;

    public function __construct(string $cpf, float $salario)
    {
        $this->cpf = $cpf;
        $this->salario = $salario;
    }

    public function alteraDados ($novoNome, $novoCPF, $novoSalario) 
    {
        $this->nome = $novoNome;
        $this->cpf = $novoCPF;
        $this->salario = $novoSalario;
    }


public function getBonificacao() {
return $this->salario * 0.5;
}


public function aumentarSalario() {
    $this->salario *= 1.5;
}




}

Dúvida, toda vez que tente fazer o extends na classe diretor para FuncionarioAutenticavel e FuncionárioAutenticavel realiza o extends da classe funcionário, apresenta o fatal error abaixo:

Fatal error: Uncaught Error: Class 'classes\abstratas\FuncionarioAutenticavel' not found in C:\xampp\htdocs\php\classes\funcionarios\Diretor.php:7 Stack trace: #0 C:\xampp\htdocs\php\autoload.php(7): include_once() #1 [internal function]: load('classes/funcion...') #2 C:\xampp\htdocs\php\index.php(9): spl_autoload_call('classes\\funcion...') #3 {main} thrown in C:\xampp\htdocs\php\classes\funcionarios\Diretor.php on line 7

Porém, quando realizo o extends na classe diretor.php diretamente na classe funcionario.php, o código funciona sem apresentar erros.

1 resposta
solução!

Resolvi o problema pessoal! Errei o nome FuncionarioAutenticavel no namespace da classe, ao invés de FuncionarioAutenticavel eu coloquei: FuncionarioAutentitavel. Pois isso estava dando erro ao chamar o arquivo, realmente um erro que não estava observando. Obrigado a todos.

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