Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Herança PHP de classe em outra pasta

Como posso fazer uma herança de uma classe que esta em um nível acima de diretório, em PHP?

Exemplo de como estou fazendo e não dá certo:

Classe que será Herdada (está na pasta ../Projeto/Classes):

class Automovel {
    //codigo
}

Classe que está recebendo a herança (está na pasta ../Projeto):

class Celta extends \Automovel {
    //codigo
}

Pelo que entendi na documentação, o uso da "\" serve para descer um nível, mas o mesmo não acontece.

2 respostas
solução!

Oi Augustus, tudo bom?

Se você não tem um autoloader, você precisa utilizar o require_once(). Algo como:

require_once("../Projeto/Classes/Automovel.php");

Se você já tem um autoloader, seguindo as PSRs você pode utilizar a declaração do namespace com o using, algo como:

// Em Automovel
namespace Projeto\Classes;

class Automovel {
    //codigo
}
// Em Celta
namespace Projeto;

using Projeto\Classes\Automovel;

class Celta extends Automovel{...}

Abraço!

Obrigado pela explicação André.