У меня возникли проблемы с работой автозагрузчика в Hack / HHVM.
Я в основном разработчик PHP, но решил попробовать Hack для этого нового проекта, над которым я работаю.
Моя иерархия проекта выглядит так:
autoload.php выглядит так:
<?hh // strict
function setupAutoload(): void {
$map = array(
'class' => array('A' => 'Database/DatabaseConnection.php'),
'failure' => function($kind, $name) { echo "Autoload fail: $kind, $name\n"; }
);
\HH\autoload_set_paths($map, '/var/www/html/');
}
setupAutoload();
База данных / DatabaseConnection выглядит так:
<?hh // strict
class DatabaseConnection {
// All my db connect code
}
и, наконец, AppSupport / GetSomething.php выглядит так:
<?hh // strict
require_once $_SERVER['DOCUMENT_ROOT'] . '/autoload.php';
$pdo = new DatabaseConnection('localhost', NULL, 'XXXX', 'YYYY', 'ZZZZ');
$stmt = $pdo->getLink()->prepare('SELECT * FROM test');
$stmt->execute();
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($res);
Когда я запускаю GetSomething.php, я получаю Class undefined: DatabaseConnection
Я не получаю никаких ошибок с автозагрузчиком, хотя … Что странно, что если я заменю
require_once $_SERVER['DOCUMENT_ROOT'] . '/autoload.php';
с
require_once '/var/www/html/Database/DatabaseConnection.php';
напрямую работает нормально.
Я, должно быть, скучаю по чему-то глупому … Спасибо!
Задача ещё не решена.
Других решений пока нет …