phpDocumentor
[ class tree: phpDocumentor ] [ index: phpDocumentor ] [ all elements ]

Class: Classes

Source Location: /phpDocumentor/Classes.inc

Class Overview


Intermediate class parsing structure.


Author(s):

Version:

  • Release: @VER@

Copyright:

  • 2001-2007 Gregory Beaver

Methods



Class Details

[line 70]
Intermediate class parsing structure.

The phpDocumentor_IntermediateParser class uses this class and its cousin, ProceduralPages to organize all parsed source code elements. Data is fed to each immediately after it is parsed, and at conversion time, everything is organized.

The Classes class is responsible for all inheritance, including resolving name conflicts between classes, determining which classes extend other classes, and is responsible for all inheritance of documentation.




Tags:

author:  Greg Beaver <cellog@php.net>
version:  Release: @VER@
copyright:  2001-2007 Gregory Beaver
link:  http://pear.php.net/PhpDocumentor
link:  http://www.phpdoc.org
todo:  CS cleanup - change package to PhpDocumentor
since:  1.0rc1
license:  LGPL


[ Top ]


Class Methods


method addClass [line 393]

void addClass( parserClass &$element)

While parsing, add a class to the list of parsed classes

sets up the $classesbyfile, $classesbynamefile, $extendsbyfile, $classchildrenbyfile, $roots arrays, and sets $curclass




Tags:

uses:  Classes::addPackageToFile() - marks the current class's package as being present in a file


Parameters:

parserClass  &$element  element is a parserClass

[ Top ]

method addConst [line 466]

void addConst( parserConst &$element)

While parsing, add a variable to the list of parsed variables

sets up the $constsbyfile array using $curfile and $curclass




Parameters:

parserConst  &$element  element is a parserConst

[ Top ]

method addMethod [line 434]

void addMethod( parserMethod &$element)

While parsing, add a method to the list of parsed methods

sets up the $methodsbyfile array using $curfile and $curclass




Parameters:

parserMethod  &$element  element is a parserMethod

[ Top ]

method addPackageToFile [line 497]

void addPackageToFile( string $package)

Mark a package as being used in a class

  1. function addPackageToFile($package)
  2.     {
  3.         if (!isset($this->revcpbf[$this->curfile][$package]))
  4.         $this->classpackagebyfile[$this->curfile][$package;
  5.         $this->revcpbf[$this->curfile][$package]    1;
  6.     }




Tags:

usedby:  Classes::addClass() - marks the current class's package as being present in a file


Parameters:

string  $package  package name

[ Top ]

method addVar [line 450]

void addVar( parserVar &$element)

While parsing, add a variable to the list of parsed variables

sets up the $varsbyfile array using $curfile and $curclass




Parameters:

parserVar  &$element  element is a parserVar

[ Top ]

method getClass [line 943]

parserClass &getClass( string $class, string $file)

Get the parserClass representation of a class from its name and file



Parameters:

string  $class  classname
string  $file  file classname is located in

[ Top ]

method getClassByPackage [line 1189]

mixed &getClassByPackage( string $class, string $package)

Search for a class in a package



Tags:

return:  returns false if no class in $package, otherwise returns a parserClass


Parameters:

string  $class  classname
string  $package  package classname is in

[ Top ]

method getClassesInPath [line 960]

mixed getClassesInPath( string $path)

Used by parserData::getClasses() to retrieve classes defined in file $path

retrieves the array entry from $classesbyfile for $path




Tags:

return:  returns false if no classes defined in the file, otherwise returns an array of parserClasses


Parameters:

string  $path  full path to filename

[ Top ]

method getConflicts [line 630]

mixed getConflicts( mixed $class)

If a package contains two classes with the same name, this function finds that conflict

Returns the $classconflicts entry for class $class, minus its own path




Tags:

return:  returns false if no conflicts, or an array of paths containing conflicts


Parameters:

mixed  $class  the class name to search for

[ Top ]

method getDefiniteChildren [line 1349]

mixed getDefiniteChildren( string $parclass, string $file)

Get all classes confirmed in parsing to be descended class $parclass in file $file



Tags:

return:  either false if no children, or array of format array(childname => childfile,childname2 => childfile2,...)
see:  parserClass::getChildClassList()
uses:  $definitechild


Parameters:

string  $parclass  name of parent class
string  $file  file parent class is found in

[ Top ]

method getParentClass [line 1227]

mixed getParentClass( string $class, string $file)

Find the parent class of a class in file $file

uses 3 tests to find the parent classname:

  1. only one class with the parent classname
  2. more than one class, but only one in the same file as the child
  3. only one parent class in the same package as the child




Tags:

return:  false if no parent class, a string if no parent class found by that name, and an array(file parentclass is in, parentclassname)
usedby:  Classes::setClassParent() - to find the parent class


Parameters:

string  $class  classname
string  $file  file classname is located in

[ Top ]

method getRoots [line 1292]

array getRoots( [boolean $all = false])

Get a list of all root classes indexed by package. Used to generate class trees by Converter



Tags:

return:  array(package => array(rootclassname, rootclassname,...),...)


Parameters:

boolean  $all  [since phpDocumentor 1.3.0RC6] determines whether to return class trees that extend non-parsed classes

[ Top ]

method Inherit [line 546]

void Inherit( phpDocumentor_IntermediateParser &$render)

Main processing engine for setting up class inheritance.

This function uses $roots to traverse the inheritance tree via processChild() and returns the data structures phpDocumentor_IntermediateParser needs to convert parsed data to output using phpDocumentor_IntermediateParser::Convert()




Tags:

todo:  CS Cleanup - rename to "inherit" for CamelCaps naming standard
uses:  Classes::processChild() - set up inheritance


Parameters:

phpDocumentor_IntermediateParser  &$render  the renderer object

[ Top ]

method nextFile [line 482]

void nextFile( string $file)

Prepare to parse a new file

sets $curfile to $file and $curclass to false (no class being parsed)




Parameters:

string  $file  file currently being parsed

[ Top ]

method processChild [line 690]

void processChild( phpDocumentor_IntermediateParser &$render, string $class, string $file, [boolean $furb = false])

This function recursively climbs up the class tree, setting inherited information like package and adds the elements to phpDocumentor_IntermediateParser.

Using structures defined in Classes, the function first sets package information, and then seeks out child classes. It uses 3 tests to determine whether a class is a child class.

  1. child class is in the same file as the parent class and extends parent class
  2. child class is in a different file and specifies the parent's @package in its docblock
  3. child class is in a different file and is in a different @package, with one possible parent class




Tags:

global:  string $phpDocumentor_DefaultPackageName: default package, usually "default"
usedby:  Classes::Inherit() - set up inheritance


Parameters:

phpDocumentor_IntermediateParser  &$render  the renderer object
string  $class  class to process
string  $file  name of file $class is located in
boolean  $furb  flag used privately to control informational output while parsing (used when processing leftover classes in Inherit()

[ Top ]

method setClassParent [line 518]

void setClassParent( string $class, string $file)

Find the parent class of $class, and set up structures to note this fact

Modifies the parserClass element in $classesbyfile to use the parent's package, and inherit methods/vars




Tags:

uses:  Classes::getParentClass() - to find the parent class
uses:  $definitechild - if a match is made between a parent class and parameter $class in file $file, then definitechild is set here


Parameters:

string  $class  child class to find parent class
string  $file  file child class is located in

[ Top ]

    Поддержать сайт на родительском проекте КГБ