Solucionado (ver solução)
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é.

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