У меня есть три разных файла для каждой части кода.(я использую автозагрузчик классов).Первый файл (/classes/Test/Foo.php):
<?php
namespace Test;
class Foo
{
public $id;
function __construct(int $id)
{
$this->id = $id;
}
public function get() : string
{
return "FOO:" . $this->id;
}
}
Второй файл (/classes/Test/Bar.php):
<?php
namespace Test;
class Bar extends Foo
{
public function get() : string
{
return "BAR:" . $this->id;
}
}
Третий файл (/ index.php):
<?php
namespace Test;
include "autoloader.php";
$bar = new Bar(1);
echo $bar->get();
Когда я выполняю третий файл, я вообще ничего не получаю, даже ошибки ... но если я помещаю весь код в один файл, это работает.
<?php
namespace Test;
class Foo
{
public $id;
function __construct(int $id)
{
$this->id = $id;
}
public function get() : string
{
return "FOO:" . $this->id;
}
}
class Bar extends Foo
{
public function get() : string
{
return "BAR:" . $this->id;
}
}
$bar = new Bar(1);
echo $bar->get();
вывод: BAR: 1
В чем может быть проблема?
Код автозагрузчика:
<?php
spl_autoload_register(function($class) {
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/" . str_replace("\\", "/", $class) . ".php";
});