Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

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é.