在Hack / HHVM中自动加载

时间:2018-08-19 02:22:36

标签: php loader autoload hhvm hacklang

我无法让自动装带器在Hack / HHVM中工作。

我主要是一名PHP开发人员,但决定为我正在从事的这个新项目尝试Hack。

我的项目层次结构如下:

  • autoload.php
  • Database / 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();

数据库/数据库连接看起来像:

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

直接工作正常。

我一定很想念一些傻事...谢谢!

0 个答案:

没有答案