From: Derick Rethans Date: Fri, 9 May 2003 12:03:09 +0000 (+0000) Subject: - Add inheritance information to package inspection on 'pear package'. X-Git-Tag: RELEASE_0_9b~41 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7a1e959f2911adc1cbbbf1d28469660e0b5eecc8;p=php - Add inheritance information to package inspection on 'pear package'. --- diff --git a/pear/PEAR/Common.php b/pear/PEAR/Common.php index 94898fae6d..94ad6d6b59 100644 --- a/pear/PEAR/Common.php +++ b/pear/PEAR/Common.php @@ -935,7 +935,11 @@ class PEAR_Common extends PEAR if (isset($pkginfo['provides'])) { foreach ($pkginfo['provides'] as $key => $what) { $ret .= "$indent \n"; + $ret .= "name=\"$what[name]\" "; + if (isset($what['extends'])) { + $ret .= "extends=\"$what[extends]\" "; + } + $ret .= "/>\n"; } } if (isset($pkginfo['filelist'])) { @@ -1175,6 +1179,10 @@ class PEAR_Common extends PEAR } $this->pkginfo['provides'][$key] = array('type' => 'class', 'name' => $class); + if (isset($srcinfo['inheritance'][$class])) { + $this->pkginfo['provides'][$key]['extends'] = + $srcinfo['inheritance'][$class]; + } } foreach ($srcinfo['declared_methods'] as $class => $methods) { foreach ($methods as $method) { @@ -1243,6 +1251,7 @@ class PEAR_Common extends PEAR $declared_methods = array(); $used_classes = array(); $used_functions = array(); + $extends = array(); $nodeps = array(); for ($i = 0; $i < sizeof($tokens); $i++) { if (is_array($tokens[$i])) { @@ -1273,6 +1282,7 @@ class PEAR_Common extends PEAR case T_CLASS: case T_FUNCTION: case T_NEW: + case T_EXTENDS: $look_for = $token; continue 2; case T_STRING: @@ -1280,6 +1290,8 @@ class PEAR_Common extends PEAR $current_class = $data; $current_class_level = $brace_level; $declared_classes[] = $current_class; + } elseif ($look_for == T_EXTENDS) { + $extends[$current_class] = $data; } elseif ($look_for == T_FUNCTION) { if ($current_class) { $current_function = "$current_class::$data"; @@ -1319,6 +1331,7 @@ class PEAR_Common extends PEAR "declared_methods" => $declared_methods, "declared_functions" => $declared_functions, "used_classes" => array_diff(array_keys($used_classes), $nodeps), + "inheritance" => $extends, ); } @@ -1344,6 +1357,7 @@ class PEAR_Common extends PEAR $decl_c = @array_merge($decl_c, $tmp['declared_classes']); $decl_f = @array_merge($decl_f, $tmp['declared_functions']); $decl_m = @array_merge($decl_m, $tmp['declared_methods']); + $inheri = @array_merge($inheri, $tmp['inheritance']); } $used_c = array_unique($used_c); $decl_c = array_unique($decl_c); @@ -1353,6 +1367,7 @@ class PEAR_Common extends PEAR 'declared_methods' => $decl_m, 'declared_functions' => $decl_f, 'undeclared_classes' => $undecl_c, + 'inheritance' => $inheri, ); } diff --git a/pear/package.dtd b/pear/package.dtd index 4afc4aa5cb..e1eff7098f 100644 --- a/pear/package.dtd +++ b/pear/package.dtd @@ -1,5 +1,5 @@