Автозагрузка в Hack / HHVM

У меня возникли проблемы с работой автозагрузчика в Hack / HHVM.

Я в основном разработчик PHP, но решил попробовать Hack для этого нового проекта, над которым я работаю.

Моя иерархия проекта выглядит так:

  • autoload.php
  • База данных / DatabaseConnection.php
  • AppSupport / GetSomething.php

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';

напрямую работает нормально.

Я, должно быть, скучаю по чему-то глупому … Спасибо!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]