2
respostas

Problema com execução no shel php.

Dentro do php -a:

php > require 'src/Pessoa.php';
php > require 'src/Funcionario.php';
php > require 'src/CPF.php';
php > $umFuncionario = new Funcionario("Romulo", "123.456.789-10", "Desenvolvedor");
PHP Warning:  Uncaught Error: Class "Funcionario" not found in php shell code:1
Stack trace:
#0 {main}
  thrown in php shell code on line 1

Warning: Uncaught Error: Class "Funcionario" not found in php shell code:1
Stack trace:
#0 {main}
  thrown in php shell code on line 1

Por que o shell fica dando erro de compilação se eu implementei o arquivo direitinho e também chamei no início? Já coloquei com aspas simples, também dá o mesmo erro, de cara.

2 respostas

Oi Rômulo, vc poderia mostrar a Funcionario.php

<?php
//namespace src;

class Funcionario extends Pessoa{
    private string $cargo;

    public function __construct(string $nome, CPF $cpf, string $cargo){
        $this->validarNome($nome);
        $this->nome = $nome;
        $this->cpf = $cpf;
        $this->cargo = $cargo;
    }

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

Eu fiz vários testes e descobri que tenho que adicionar todas as classes no terminal, para funcionar direitinho. Depois desses testes, ele recebeu os valores e funcionou como esperado. É como se o shell do php tivesse algum problema para ler as funcionalidades. Outro caso, é que uso o Eclipse PHP. Antes de postar, eu reli 3 vezes todo o código para tentar entender por que ele não reconhecia na linha do shell, sendo que ele foi citado. Vai entender! hahaha