/** * Fetches the page from the specified file and parses it for information about the function */ public function finalize() { $options = new PC_Engine_Options(); $options->add_project(PC_Project::PHPREF_ID); $typecon = new PC_Engine_TypeContainer($options); $typecon->prefetch(); foreach ($this->versions as $vinfo) { list($classname, $funcname, $version) = $vinfo; $class = $typecon->get_class($classname); if ($class !== null) { $func = $class->get_method($funcname); if ($func !== null) { if ($func->get_version()->is_empty()) { $func->get_version()->set($version->get_min(), $version->get_max()); } PC_DAO::get_functions()->update($func, $class->get_id()); } } } // inherit version info to methods, if still empty foreach ($typecon->get_classes() as $c) { $version = $c->get_version(); foreach ($c->get_methods() as $m) { if ($m->get_version()->is_empty()) { $m->get_version()->set($version->get_min(), $version->get_max()); PC_DAO::get_functions()->update($m, $c->get_id()); } } } foreach ($this->aliases as $alias) { list($funcname, $aliasclass, $aliasfunc) = $alias; $aliasf = null; if ($aliasclass) { $class = $typecon->get_class($aliasclass); if ($class !== null) { $aliasf = $class->get_method($aliasfunc); } } else { $aliasf = $typecon->get_function($aliasfunc); } if ($aliasf !== null) { $aliasf->set_name($funcname); PC_DAO::get_functions()->create($aliasf, 0, PC_Project::PHPREF_ID); } } }