Beispiel #1
0
<?php

// Copyright 2004-2015 Facebook. All Rights Reserved.
function def()
{
    define('FOO', 1);
}
function show($a, $b)
{
    var_dump($a, $b);
}
function test()
{
    show(FOO, FOO);
}
HH\autoload_set_paths(array('constant' => array(), 'failure' => 'def'), "");
test();
Beispiel #2
0
<?php

var_dump(HH\autoload_set_paths(array('function' => array(), 'constant' => array(), 'failure' => 'failure'), ''));
function failure($kind, $name)
{
    if ($kind == 'constant' && $name == 'bar') {
        define('bar', 'baz');
    }
    var_dump($kind, $name);
}
var_dump(function_exists('foo'));
var_dump(function_exists('bar', false));
var_dump(defined('foo'));
var_dump(defined('bar', false));
var_dump(constant('foo'));
var_dump(constant('bar'));
if (0) {
    function foo()
    {
    }
    function foo()
    {
    }
    define('foo', 0);
    define('bar', 0);
}
Beispiel #3
0
<?php

function fail($t, $n, $e)
{
    var_dump($t, $n);
    if ($e instanceof Exception) {
        var_dump($e->getMessage(), $e->getTrace());
    } else {
        var_dump($e);
    }
    if ($n == 'C') {
        class C
        {
        }
    } else {
        if ($n == 'D') {
            class D
            {
            }
        }
    }
}
\HH\autoload_set_paths(array('class' => array('c' => 'autoload-fail-c.inc', 'd' => 'autoload-fail-d.inc'), 'failure' => 'fail'), __DIR__ . '/');
$x = new C();
$x = new D();
Beispiel #4
0
function fb_autoload_map(mixed $map, string $root) : bool
{
    trigger_error(__FUNCTION__ . '(): Use HH\\autoload_set_paths() instead.', E_DEPRECATED);
    return HH\autoload_set_paths($map, $root);
}
Beispiel #5
0
<?php

function fail($t, $n, $e)
{
    var_dump($t, $n);
    if ($e instanceof Exception) {
        var_dump($e->getMessage(), $e->getTrace());
    } else {
        var_dump($e);
    }
    return false;
    // stop: otherwise hoistability would create an infinite loop
}
\HH\autoload_set_paths(array('class' => array('i1' => 'autoload-fail-e.inc', 'i2' => 'autoload-fail-e.inc'), 'failure' => 'fail'), __DIR__ . '/');
class X implements I1
{
    public function method()
    {
        echo __METHOD__, "\n";
    }
}
$x = new X();
$x->method();
echo 'NOTE: repo-mode doesn\'t invoke the autoloader at all (I1 is in repo)', "\n";
echo 'Done', "\n";
Beispiel #6
0
/**
 * Deprecated - use HH\autoload_set_paths instead.
 */
function fb_autoload_map(mixed $map, string $root) : bool
{
    return HH\autoload_set_paths($map, $root);
}