Я новичок в этом пространстве имен.
У меня есть 2 класса (отдельные файлы) в моем базовом каталоге, скажем, class1.php
и class2.php
внутри каталога src/
.
class1.php
namespace \src\utility\Timer;
class Timer{
public static function somefunction(){
}
}
class2.php
namespace \src\utility\Verification;
use Timer;
class Verification{
Timer::somefunction();
}
Когда я выполняю class2.php
, я получаю фатальную ошибку, которая
Неустранимая ошибка PHP: класс «Таймер» не найден в path/to/class2.php в строке ***
Я где-то читал на SO, что для этого мне нужно создать автозагрузчики. Если да, то как мне подойти к его созданию, а если нет, то в чем еще проблема?
ОБНОВЛЕНИЕ
Я создал автозагрузчик, который будет require
загружать все необходимые файлы поверх моего php-скрипта. Итак, теперь class2.php будет таким.
namespace \src\utility\Verification;
require '/path/to/class1.php'
use Timer;
//or use src\utility\Timer ... both doesn't work.
class Verification{
Timer::somefunction();
}
Это также не работает и показывает, что класс не найден. Но если я удалю все namespaces
и use
. Все работает нормально.
\
на/
и загрузка из структуры папок (почему пространство имен обычно соответствует структуре каталогов. - person ash   schedule 22.04.2016