home *** CD-ROM | disk | FTP | other *** search
- <?php
- /**
- * Builds Indexlists with the result from the
- *
- * @author Ulf Wendel <ulf.wendel@redsys.de>
- * @version $Id: PhpdocIndexer.php,v 1.3 2001/02/18 15:48:48 uw Exp $
- */
- class PhpdocIndexer extends PhpdocObject {
-
- /**
- * Array of all packages.
- *
- * @var array
- */
- var $packages = array();
-
- /**
- * Current classtree.
- *
- * @var array
- */
- var $classtree = array();
-
- /**
- * Current modulegroup.
- *
- * @var array
- */
- var $modulegroup = array();
-
- /**
- * Array of all elements (functions, variables, constant, included files, classes, packages).
- *
- * @var array
- */
- var $elements = array();
-
- /**
- * Array of fields that get added to the elementlist
- *
- * @var array
- */
- var $elementFields = array("functions", "variables", "consts", "uses");
-
- /**
- * Adds a class to the index lists (elements, packages, classtree).
- *
- * @param array
- * @access public
- * @see addModule()
- */
- function addClass(&$class) {
-
- $package = isset($class["package"]) ? $class["package"] : "No Package specified";
- $this->packages[$package]["classes"][] = $class["name"];
- $this->classtree[$class["name"]] = (isset($class["subclasses"])) ? $class["subclasses"] : array();
- $this->addElements($class, "class");
-
- } // end func addClass
-
- /**
- * Adds a module to the index lists (elements, packages, classtree).
- *
- * @param array
- * @access public
- * @see addClass()
- */
- function addModule(&$module) {
-
- $package = isset($module["package"]) ? $module["package"] : "No Package specified";
- $this->packages[$package]["modules"][] = $module["name"];
- $this->modulegroup[$module["group"]][] = $module["name"];
- $this->addElements($module, "module");
-
- } // end func addModule
-
- /**
- * Returns the current classtree and resets the internal classtree field.
- *
- * @access public
- * @return array $classtree
- */
- function getClasstree() {
-
- $data = $this->classtree;
- $this->classtree = array();
- return $data;
-
- } // end func getClasstree
-
- /**
- * Returns the current modulegroup and resets the internal modulegroup field.
- *
- * @access public
- * @return array $modulegroup
- */
- function getModulegroup() {
-
- $data = $this->modulegroup;
- $this->modulegroup = array();
- return $data;
-
- } // end func getModulegroup
-
- /**
- * Returns the package list and resets the internal package field.
- *
- * @access public
- * @return array $packages
- */
- function getPackages() {
-
- reset($this->packages);
- while (list($package, ) = each($this->packages))
- $this->elements[substr($package, 0, 1)][$package][] = array(
- "type" => "package",
- "sdesc" => "",
- "source" => "",
- "sourcetype" => ""
- );
- $data = $this->packages;
- $this->packages = array();
-
- return $data;
- } // end func getPackages
-
- /**
- * Returns the element index list and resets the internal elements field.
- *
- * @access public
- * @return array
- */
- function getElementlist() {
-
- $data = $this->elements;
- $this->elements = array();
- return $data;
- } // end func getElementlist
-
- /**
- * Adds an element to the elementlist.
- * @param array
- * @param string Element type: class, module.
- */
- function addElements(&$elements, $type) {
-
- $index = substr($elements["name"], 0, 1);
- $elname = $elements["name"];
- $this->elements[$index][$elname][] = array(
- "type" => $type,
- "sdesc" => (isset($elements["sdesc"])) ? $elements["sdesc"] : "",
- "source" => "",
- "sourcetype" => $type
- );
-
- reset($this->elementFields);
- while (list($k, $field) = each($this->elementFields)) {
- if (!isset($elements[$field]))
- continue;
-
- reset($elements[$field]);
- while (list($name, $data) = each($elements[$field])) {
-
-
- if ("variables" == $field) {
-
- $index = substr($data["name"], 1, 1);
- $name = $data["name"];
-
- } else if ("uses" == $field) {
-
- $index = substr($data["file"], 0, 1);
- $name = $data["file"];
-
- } else {
-
- $index = substr($data["name"], 0, 1);
- $name = $data["name"];
-
- }
-
- $this->elements[$index][$name][] = array(
- "type" => $field,
- "sdesc" => (isset($data["sdesc"])) ? $data["sdesc"] : "",
- "source" => $elname,
- "sourcetype" => $type
- );
-
- }
-
- }
-
- } // end func addElements
-
- } // end class PhpdocIndexer
- ?>