diff --git a/classes/classDoc.php b/classes/classDoc.php index da308fd..5cf1298 100644 --- a/classes/classDoc.php +++ b/classes/classDoc.php @@ -228,19 +228,6 @@ function &interfaces() { return $this->_interfaces; } - - /** Return an interface in this class. - * - * @return ClassDoc - */ - function &interfaceNamed($interfaceName) - { - $return = NULL; - if (isset($this->_interfaces[$interfaceName])) { - $return =& $this->_interfaces[$interfaceName]; - } - return $return; - } /** Return true if this class is abstract. * diff --git a/classes/phpDoctor.php b/classes/phpDoctor.php index 6b86d1c..b313f0d 100644 --- a/classes/phpDoctor.php +++ b/classes/phpDoctor.php @@ -692,11 +692,8 @@ function &parse() case T_IMPLEMENTS: // get implements clause - $interfaceName = $this->_getProgramElementName($tokens, $key); - $interface =& $rootDoc->classNamed($interfaceName); - if ($interface) { - $ce->set('interfaces', $interface); - } + $interfaceNames = $this->_getProgramElementName($tokens, $key); + $ce->set('interfaces', $interfaceNames); break; case T_THROW: diff --git a/doclets/debug/debug.php b/doclets/debug/debug.php index 43a6cef..12d3620 100644 --- a/doclets/debug/debug.php +++ b/doclets/debug/debug.php @@ -46,7 +46,7 @@ function debug(&$rootDoc, $formatter) echo '- Namespace ', $package->name(), "\n"; $this->fieldDoc($package->globals()); $this->methodDoc($package->functions()); - $this->classDoc($package->allClasses()); + $this->classDoc($package->allClasses(), $rootDoc); } @@ -149,7 +149,7 @@ function constructorDoc(&$constructor) * * @param ClassDoc[] classes */ - function classDoc(&$classes) + function classDoc(&$classes, &$rootDoc) { $this->depth++; if ($classes) { @@ -172,8 +172,13 @@ function classDoc(&$classes) $interfaces =& $class->interfaces(); if ($interfaces) { echo ' implements '; - foreach($interfaces as $interface) { - echo $interface->packageName(), '\\', $interface->name(), ' '; + foreach($interfaces as $interfaceName) { + $interface = $rootDoc->classNamed($interfaceName); + if ($interface) { + echo $interface->packageName(), '\\', $interface->name(), ' '; + } else { + echo $interfaceName; + } } } echo ' [', $class->location(), ']'; diff --git a/doclets/standard/classWriter.php b/doclets/standard/classWriter.php index 036870a..37e6fb2 100644 --- a/doclets/standard/classWriter.php +++ b/doclets/standard/classWriter.php @@ -86,12 +86,17 @@ function classWriter(&$doclet) echo "
\n"; echo "
All Implemented Interfaces:
\n"; echo '
'; - foreach ($implements as $interface) { - echo ''; - if ($interface->packageName() != $class->packageName()) { - echo $interface->packageName(), '\\'; - } - echo $interface->name(), ' '; + foreach ($implements as $interfaceName) { + $interface = $rootDoc->classNamed($interfaceName); + if ($interface) { + echo ''; + if ($interface->packageName() != $class->packageName()) { + echo $interface->packageName(), '\\'; + } + echo $interface->name(), ' '; + } else { + echo $interfaceName; + } } echo "
\n"; echo "
\n\n";