コード例 #1
0
/** fetch the local PECL releases of the given pkg name */
function get_local_pecl_releases($array)
{
    static $cache = array();
    $pecl_releases = get_pecl_releases_local();
    $pkg = pkg_name($array);
    if (isset($cache[$pkg])) {
        return $cache[$pkg];
    }
    $pkg_strlen = strlen($pkg);
    foreach ($pecl_releases as $release) {
        if (substr_compare($pkg, $release, 0, $pkg_strlen, true) == 0) {
            $cache[$pkg][] = $release;
        }
    }
    return $cache[$pkg];
}
コード例 #2
0
ファイル: insert_db.php プロジェクト: marczych/hack-hhvm-docs
        sqlite_query($idx, $sql);
    }
}
$db_open = isset($idx) ? true : false;
if (!$db_open && !($idx = sqlite_open('ini_changelog.sqlite', 0666, $error))) {
    die("Couldn't create the DB: {$error}");
}
// process PHP sources
foreach ($tags as $tag) {
    $array = $replace = array();
    recurse("./sources/{$tag}", true);
    insert_in_db($tag);
    echo "{$tag}\n";
}
// process PECL sources
foreach (get_pecl_releases_local() as $release) {
    preg_match('/^(.+)-(\\d+(?:\\.\\d+)+)$/S', $release, $m);
    $pkg = $m[1];
    $version = $m[2];
    // if it has an entry already, just skip it
    if (sqlite_single_query($idx, "SELECT COUNT(*) FROM pecl_changelog WHERE package='" . sqlite_escape_string($pkg) . "' AND version='{$version}'") > 0) {
        continue;
    }
    $array = $replace = array();
    recurse("./sources/{$release}", true);
    $sql = '';
    foreach ($array as $key => $data) {
        $sql .= "INSERT INTO pecl_changelog (package, version, name, value) VALUES ('" . sqlite_escape_string($pkg) . "', '{$version}', '{$key}', '{$data['1']}');";
        // prefer information from PHP sources
        if (!sqlite_single_query($idx, "SELECT name FROM changelog WHERE name='{$key}'")) {
            $sql .= "REPLACE INTO last_seen_values (name, defaultval, permissions) VALUES ('{$key}', '" . sqlite_escape_string(expand_macros($data[0])) . "', '{$data['1']}');";