Class: Converter
Source Location: /phpDocumentor/Converter.inc
Class Converter
Class Overview
Base class for all output converters.
The Converter marks the final stage in phpDocumentor. phpDocumentor works in this order: Parsing => Intermediate Parsing organization => Conversion to output A Converter takes output from the phpDocumentor_IntermediateParser and converts it to output. With version 1.2, phpDocumentor includes a variety of output converters: {@ and using walk() or walk_everything (depending on the value of $sort_absolutely_everything) it "walks" over an array of phpDocumentor elements.}}
Located in /phpDocumentor/Converter.inc [line 75]
Author(s):
API Tags:
Information Tags:
Version: | $Id: Converter.inc,v 1.33 2006/10/22 18:54:47 cellog Exp $ |
Since: | 1.0rc1 |
|
Properties
|
Methods
|
Property Summary
string|false |
$class |
set to a classname if currently parsing a class, false if not |
array |
$class_contents |
alphabetical index of all methods and vars in a class by package/subpackage |
mixed |
$curfile |
full path of the current file being converted |
array |
$elements |
alphabetical index of all elements |
boolean |
$highlightingSource |
Flag used to help converters determine whether to do special source highlighting |
array |
$leftindex |
Controls which of the one-element-only indexes are generated. |
string |
$package |
package name currently being converted |
array |
$package_elements |
alphabetical index of all elements sorted by package, subpackage, page, and class. |
string |
$page |
name of current page being converted |
array |
$page_contents |
alphabetical index of all elements on a page by package/subpackage |
array |
$page_elements |
alphabetized index of procedural pages by package |
bool |
$parseprivate |
controls processing of elements marked private with @access private |
string |
$path |
path of current page being converted |
array |
$pkg_elements |
alphabetical index of all elements, indexed by package/subpackage |
bool |
$quietmode |
controls display of progress information while parsing. |
string |
$smarty_dir |
Directory that the smarty templates are in |
mixed |
$sort_absolutely_everything |
This is used if the content must be passed in the order it should be read, i.e. by package, procedural then classes |
boolean |
$sort_page_contents_by_type |
This determines whether the $page_contents array should be sorted by element type as well as alphabetically by name |
array |
$sourcePaths |
A list of files that have had source code generated |
string |
$subpackage |
subpackage name currently being converted |
mixed |
$targetDir |
directory that output is sent to. -t command-line sets this. |
string |
$templateDir |
Directory that the template is in, relative to phpDocumentor root directory |
array |
$template_options |
Options for each template, parsed from the options.ini file in the template base directory |
array |
$todoList |
List of all @todo tags and a link to the element with the @todo |
Method Summary
Converter |
Converter() |
Initialize Converter data structures |
string |
AttrToString() |
Convert the attribute of a Tutorial docbook tag's attribute list |
string |
Bolden() |
Used to convert the contents of <b> in a docblock |
string |
Br() |
Used to convert <br> in a docblock |
void |
checkState() |
Compare parserStringWithInlineTags::Convert() cache state to $state |
void |
cleanup() |
Finish up parsing/cleanup directories |
void |
Convert() |
Convert all elements to output format |
void |
convertConst() |
Converts class constants for template output. |
void |
ConvertErrorLog() |
Convert the phpDocumentor parsing/conversion error log |
void |
convertGlobal() |
Converts global variables for template output |
string |
ConvertTitle() |
Convert the title of a Tutorial docbook tag section |
void |
convertVar() |
Converts class variables for template output. |
void |
Convert_RIC() |
Convert README/INSTALL/CHANGELOG file contents to output format |
void |
copyFile() |
Copies a file from the template directory to the target directory |
void |
createParentDir() |
Recursively creates all subdirectories that don't exist in the $dir path |
string |
EncloseList() |
Used to convert the contents of <ol> or <ul> in a docblock |
void |
endClass() |
Called by walk() while converting, when the last class element has been parsed. |
void |
endPage() |
Called by walk() while converting, when the last procedural page element has been parsed. |
string |
formatTutorialTOC() |
Creates a table of contents for a {@toc} inline tag in a tutorial |
array |
getClassesOnPage() |
gets a list of all classes declared on a procedural page represented by |
string |
getConverterDir() |
Get the absolute path to the converter's base directory |
string |
getFileSourceName() |
Translate the path info into a unique file name for the highlighted source code. |
string |
getFormattedImplements() |
returns an array containing the class inheritance tree from the root object to the class. |
string |
getGlobalValue() |
Parse a global variable's default value for class initialization. |
string |
getIncludeValue() |
Parse an include's file to see if it is a file documented in this project |
mixed |
&getLink() |
The meat of the @see tag and inline {@link} tag |
void |
getState() |
Return parserStringWithInlineTags::Convert() cache state |
string |
getTutorialId() |
Return a converter-specific id to distinguish tutorials and their sections |
array |
getTutorialTree() |
Get a tree structure representing the hierarchy of tutorials |
boolean |
hasSourceCode() |
Determine whether an element's file has generated source code, used for linking to line numbers of source. |
string |
highlightDocBlockSource() |
Used to allow converters to format the source code of DocBlocks the way they'd like. |
string |
highlightSource() |
Used to allow converters to format the source code the way they'd like. |
string |
highlightTutorialSource() |
Used to allow converters to format the source code of Tutorial XML the way they'd like. |
string |
Italicize() |
Used to convert the contents of <i> in a docblock |
string |
Kbdize() |
Used to convert the contents of <kbd> in a docblock |
string |
ListItem() |
Used to convert the contents of <li> in a docblock |
void |
Output() |
do all necessary output |
string |
returnLink() |
take URL $link and text $text and return a link in the format needed for the Converter |
string |
Sampize() |
Used to convert the contents of <samp> in a docblock |
void |
setSourcePaths() |
Mark a file as having had source code highlighted |
void |
setTargetDir() |
Sets the output directory for generated documentation |
void |
setTemplateBase() |
Set the template directory with a different template base directory |
void |
setTemplateDir() |
sets the template directory based on the $outputformat and $name |
string |
sourceLine() |
Return a line of highlighted source code with formatted line number |
void |
TranslateEntity() |
Used to translate an XML DocBook entity like ” from a tutorial by reading the options.ini file for the template. |
string |
TranslateTag() |
Used to translate an XML DocBook tag from a tutorial by reading the options.ini file for the template. |
string |
vardump_tree() |
Debugging function for dumping $tutorial_tree |
string |
Varize() |
Used to convert the contents of <var> in a docblock |
void |
writeExample() |
Write out the formatted source code for an example php file |
void |
writeSource() |
Write out the formatted source code for a php file |
void |
_rmdir() |
Completely remove a directory and its contents |
Properties
All packages encountered in parsing
API Tags:
set to a classname if currently parsing a class, false if not
Redefined in descendants as:
All class information, organized by path, and by package
alphabetical index of all methods and vars in a class by package/subpackage
The class itself has a link under ###main API Tags:
template for the class currently being processed
Redefined in descendants as:
alphabetized index of classes by package
API Tags:
full path of the current file being converted
current procedural page being processed
alphabetized index of defines by package
API Tags:
alphabetical index of all elements
API Tags:
alphabetized index of functions by package
API Tags:
alphabetized index of global variables by package
API Tags:
Flag used to help converters determine whether to do special source highlighting
Controls which of the one-element-only indexes are generated.
Generation of these indexes for large packages is time-consuming. This is an optimization feature. An example of how to use this is in HTMLframesConverter::$leftindex, and in HTMLframesConverter::formatLeftIndex(). These indexes are intended for use as navigational aids through documentation, but can be used for anything by converters. API Tags:
Redefined in descendants as:
output format of this converter
in Child converters, this will match the first part of the -o command-line as in -o HTML:frames:default "HTML"
Information Tags:
Redefined in descendants as:
package name currently being converted
Packages associated with categories
Used by the XML:DocBook/peardoc2 converter, and available to others, to group many packages into categories API Tags:
alphabetical index of all elements sorted by package, subpackage, page, and class.
API Tags:
set to value of -po commandline
Information Tags:
Hierarchy of packages
Every package that contains classes may have parent or child classes in other packages. In other words, this code is legal:
In this case, package one is a parent of package two API Tags:
name of current page being converted
Redefined in descendants as:
alphabetical index of all elements on a page by package/subpackage
The page itself has a link under ###main API Tags:
template for the procedural page currently being processed
Redefined in descendants as:
alphabetized index of procedural pages by package
API Tags:
controls processing of elements marked private with @access private
defaults to false. Set with command-line --parseprivate or -pp
path of current page being converted
Redefined in descendants as:
alphabetical index of all elements, indexed by package/subpackage
API Tags:
This converter knows about the new root tree processing
In order to fix PEAR Bug #6389
Redefined in descendants as:
controls display of progress information while parsing.
defaults to false. Set to true for cron jobs or other situations where no visual output is necessary
Directory that the smarty templates are in
Redefined in descendants as:
This is used if the content must be passed in the order it should be read, i.e. by package, procedural then classes
This fixes bug 637921, and is used by PDFdefaultConverter API Tags:
Usedby: | Converter::$package_elements - if true, then $package_elements is used,
otherwise, the ParserData::$classelements and
ParserData::$pageelements variables are used |
Redefined in descendants as:
This determines whether the $page_contents array should be sorted by element type as well as alphabetically by name
API Tags:
Redefined in descendants as:
A list of files that have had source code generated
subpackage name currently being converted
directory that output is sent to. -t command-line sets this.
Information Tags:
Directory that the template is in, relative to phpDocumentor root directory
Name of the template, from last part of -o
Information Tags:
Options for each template, parsed from the options.ini file in the template base directory
Information Tags:
Redefined in descendants as:
List of all @todo tags and a link to the element with the @todo
Format: array(package => array(link to element, array(todo parserTag,...)),...)
Information Tags:
Methods
Converter Converter(
array
&$allp, array
&$packp, Classes
&$classes, ProceduralPages
&$procpages, array
$po, boolean
$pp, boolean
$qm, string
$targetDir, string
$template, string
$title
)
|
|
Initialize Converter data structures
Parameters:
string AttrToString(
string
$tag, attribute
$attr, [boolean
$unmodified = false]
)
|
|
Convert the attribute of a Tutorial docbook tag's attribute list
to a string based on the template options.ini
Parameters:
string |
$tag: |
tag name |
attribute |
$attr: |
array |
boolean |
$unmodified: |
if true, returns attrname="value"... |
string Bolden(
string
$para
)
|
|
Used to convert the contents of <b> in a docblock
Parameters:
API Tags:
string Br(
string
$para
)
|
|
Used to convert <br> in a docblock
Parameters:
API Tags:
Redefined in descendants as:
void checkState(
mixed
$state
)
|
|
Compare parserStringWithInlineTags::Convert() cache state to $state
Parameters:
API Tags:
Finish up parsing/cleanup directories
void Convert(
mixed
&$element
)
|
|
Convert all elements to output format
This will call ConvertXxx where Xxx is http://www.php.net/ucfirst($element->type). It is expected that a child converter defines a handler for every element type, even if that handler does nothing. phpDocumentor will terminate with an error if a handler doesn't exist.
Parameters:
Information Tags:
Throws: | PDERROR_NO_CONVERT_HANDLER |
void convertConst(
parserConst
&$element, [
$additions = array()]
)
|
|
Converts class constants for template output.
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. This function must be called by a child converter with any extra template variables needed in the parameter $addition
Parameters:
Redefined in descendants as:
void convertDefine(
parserDefine
&$element, [array
$addition = array()]
)
|
|
Converts defines for template output
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. This function must be called by a child converter with any extra template variables needed in the parameter $addition {@, this method also uses utility functions getGlobalValue(), getFormattedConflicts()}}
Parameters:
parserDefine |
&$element: |
|
array |
$addition: |
any additional template variables should be in this array |
API Tags:
Redefined in descendants as:
Convert the phpDocumentor parsing/conversion error log
API Tags:
Redefined in descendants as:
void convertFunction(
parserFunction
&$element, [
$addition = array()]
)
|
|
Converts function for template output
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. This function must be called by a child converter with any extra template variables needed in the parameter $addition
Parameters:
API Tags:
Redefined in descendants as:
void convertGlobal(
parserGlobal
&$element, [array
$addition = array()]
)
|
|
Converts global variables for template output
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. This function must be called by a child converter with any extra template variables needed in the parameter $addition {@, this method also uses utility functions getGlobalValue(), getFormattedConflicts()}}
Parameters:
parserGlobal |
&$element: |
|
array |
$addition: |
any additional template variables should be in this array |
API Tags:
Redefined in descendants as:
void convertInclude(
parserInclude
&$element, [
$addition = array()]
)
|
|
Converts includes for template output
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. This function must be called by a child converter with any extra template variables needed in the parameter $addition
Parameters:
API Tags:
Redefined in descendants as:
void convertMethod(
parserMethod
&$element, [
$additions = array()]
)
|
|
Converts method for template output
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. This function must be called by a child converter with any extra template variables needed in the parameter $addition
Parameters:
Redefined in descendants as:
Default Page Handler
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. {@, this class uses getSourceLocation() and getClassesOnPage() to set template variables. Also used is getPageName(), to get a Converter-specific name for the page.}}
Parameters:
Redefined in descendants as:
string ConvertTitle(
string
$tag, array
$attr, string
$title, string
$cdata
)
|
|
Convert the title of a Tutorial docbook tag section
to a string based on the template options.ini
Parameters:
string |
$tag: |
tag name |
array |
$attr: |
|
string |
$title: |
title text |
string |
$cdata: |
|
Convert the list of all @todo tags
API Tags:
Redefined in descendants as:
Default Tutorial Handler
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. Sets up the tutorial template, and its prev/next/parent links {@ and uses the parserTutorial::prev, parserTutorial::next, parserTutorial::parent links to set up those links.}}
Parameters:
Redefined in descendants as:
void convertVar(
parserVar
&$element, [
$additions = array()]
)
|
|
Converts class variables for template output.
Conversion Handlers All of the convert* handlers set up template variables for the Smarty template. This function must be called by a child converter with any extra template variables needed in the parameter $addition
Parameters:
Redefined in descendants as:
void Convert_RIC(
README|INSTALL|CHANGELOG
$name, string
$contents
)
|
|
Convert README/INSTALL/CHANGELOG file contents to output format
Parameters:
README|INSTALL|CHANGELOG |
$name: |
|
string |
$contents: |
contents of the file |
API Tags:
Redefined in descendants as:
void copyFile(
string
$file, [
$subdir = '']
)
|
|
Copies a file from the template directory to the target directory
thanks to Robert Hoffmann for this fix
Parameters:
void createParentDir(
string
$dir
)
|
|
Recursively creates all subdirectories that don't exist in the $dir path
Parameters:
string EncloseList(
string
$list,
$ordered
)
|
|
Used to convert the contents of <ol> or <ul> in a docblock
Parameters:
API Tags:
string EncloseParagraph(
string
$para
)
|
|
Used to enclose a paragraph in a docblock
Parameters:
Called by walk() while converting, when the last class element has been parsed.
A Converter can use this method in any way it pleases. HTMLframesConverter uses it to complete the template for the class and to output its documentation
API Tags:
Redefined in descendants as:
Called by walk() while converting, when the last procedural page element has been parsed.
A Converter can use this method in any way it pleases. HTMLframesConverter uses it to complete the template for the procedural page and to output its documentation
API Tags:
Redefined in descendants as:
string exampleProgramExample(
string
$example, [boolean
$tutorial = false], [
$inlinesourceparse = null], [
$class = null], [
$linenum = null], [
$filesourcepath = null]
)
|
|
Used to convert the {@example} inline tag in a docblock.
By default, this just wraps ProgramExample
Parameters:
string |
$example: |
|
boolean |
$tutorial: |
true if this is to highlight a tutorial <programlisting> |
|
$inlinesourceparse: |
|
|
$class: |
|
|
$linenum: |
|
|
$filesourcepath: |
|
API Tags:
See: | XMLDocBookpeardoc2Converter::exampleProgramExample |
Redefined in descendants as:
string flushHighlightCache(
)
|
|
Return the close text for the current token
Called by walk() while converting.
This method is intended to be the place that $elements is formatted for output.
API Tags:
Redefined in descendants as:
Called by walk() while converting.
This method is intended to be the place that $pkg_elements is formatted for output.
API Tags:
Redefined in descendants as:
string formatTutorialTOC(
array
$toc
)
|
|
Creates a table of contents for a {@toc} inline tag in a tutorial
This function should return a formatted table of contents. By default, it does nothing, it is up to the converter to format the TOC
Parameters:
array |
$toc: |
format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...) |
API Tags:
Return: | table of contents formatted for use in the current output format |
Usedby: | parserTocInlineTag::Convert() - passes an array of format:
<pre>
array(
'tagname' => string name of tag,
'link' => tutorialLink to the tutorial,
'id' => converter specific tutorial ID from Converter::getTutorialId()
'title' => title of the tutorial)
</pre>
and returns the results as the table of contents |
Abstract: | |
Redefined in descendants as:
returns a list of child classes
Parameters:
API Tags:
Redefined in descendants as:
string generateFormattedClassTree(
parserClass
$class
)
|
|
returns an array containing the class inheritance tree from the root object to the class.
This method must be overridden, or phpDocumentor will halt with a fatal error
Parameters:
API Tags:
Return: | Converter-specific class tree for an individual class |
Abstract: | |
Redefined in descendants as:
gets a list of all classes declared on a procedural page represented by
$element, a parserData class
Parameters:
API Tags:
Return: | links to each classes documentation Format: array('name' => class name,
'sdesc' => summary of the class
'link' => link to the class's documentation) |
mixed getClassLink(
string
$expr, string
$package, [
$file = false], [
$text = false]
)
|
|
return false or a classLink to $expr
Parameters:
string |
$expr: |
class name |
string |
$package: |
package name |
|
$file: |
|
|
$text: |
|
API Tags:
Return: | returns a classLink or false if the element is not found in package $package |
See: | classLink |
Redefined in descendants as:
mixed getConstLink(
string
$expr, string
$class, string
$package, [
$file = false], [
$text = false]
)
|
|
return false or a constLink to $expr in $class
Parameters:
string |
$expr: |
constant name |
string |
$class: |
class name |
string |
$package: |
package name |
|
$file: |
|
|
$text: |
|
API Tags:
Return: | returns a varLink or false if the element is not found in package $package, class $class |
See: | constLink |
Redefined in descendants as:
string getConverterDir(
)
|
|
Get the absolute path to the converter's base directory
string getCurrentPageLink(
)
|
|
API Tags:
Return: | Link to the current page being parsed. Should return $curname and a converter-specific extension. |
Abstract: | |
Redefined in descendants as:
string getCurrentPageURL(
string
$pathinfo
)
|
|
Return the path to the current
Parameters:
mixed getDefineLink(
string
$expr, string
$package, [
$file = false], [
$text = false]
)
|
|
return false or a defineLink to $expr
Parameters:
string |
$expr: |
constant name |
string |
$package: |
package name |
|
$file: |
|
|
$text: |
|
API Tags:
Return: | returns a defineLink or false if the element is not found in package $package |
See: | defineLink |
Redefined in descendants as:
string getFileSourceName(
$path, string
$pathinfo
)
|
|
Translate the path info into a unique file name for the highlighted source code.
Parameters:
Redefined in descendants as:
string getFileSourcePath(
string
$base
)
|
|
Return the fixed path to the source-code file folder.
Parameters:
string |
$base: |
Path is relative to this folder |
array getFormattedConflicts(
mixed
&$element, string
$type
)
|
|
Parameters:
API Tags:
Get a list of methods in child classes that override this method
Parameters:
API Tags:
array getFormattedDescVars(
parserVar
&$element
)
|
|
Get a list of vars in child classes that override this var
Parameters:
API Tags:
returns an array containing the class inheritance tree from the root object to the class.
This method must be overridden, or phpDocumentor will halt with a fatal error
Parameters:
API Tags:
Return: | Converter-specific class tree for an individual class |
Abstract: | |
array getFormattedInheritedConsts(
parserConst
$child
)
|
|
Return template-enabled list of inherited class constants
uses parserConst helper function getInheritedConsts and generates a template-enabled list using getClassLink()
Parameters:
API Tags:
Return: | Format: array(
array('parent_class' => link to parent class's documentation,
'ivars' =>
array(
array('name' => inherited constant name,
'link' => link to inherited constant's documentation,
'value' => constant value,
'sdesc' => summary of inherited constant),
...),
...) |
See: | Converter::getClassLink(), parserMethod::getInheritedConsts() |
Return template-enabled list of inherited methods
uses parserMethod helper function getInheritedMethods and generates a template-enabled list using getClassLink()
Parameters:
API Tags:
Return: | Format: array(
array('parent_class' => link to parent class's documentation,
'ivars' =>
array(
array('name' => inherited variable name,
'link' => link to inherited variable's documentation,
'function_call' => parserMethod::getIntricateFunctionCall()
returned array,
'sdesc' => summary of inherited variable),
...),
...) |
See: | Converter::getClassLink(), parserMethod::getInheritedMethods() |
array getFormattedInheritedVars(
parserVar
$child
)
|
|
Return template-enabled list of inherited variables
uses parserVar helper function getInheritedVars and generates a template-enabled list using getClassLink()
Parameters:
API Tags:
Return: | Format: array(
array('parent_class' => link to parent class's documentation,
'ivars' =>
array(
array('name' => inherited variable name,
'link' => link to inherited variable's documentation,
'default' => default value of inherited variable,
'sdesc' => summary of inherited variable),
...),
...) |
See: | Converter::getClassLink(), parserVar::getInheritedVars() |
array|false getFormattedMethodImplements(
parserMethod
&$element
)
|
|
Get the method this method(s) implemented from an interface, if any
Parameters:
API Tags:
Get the method this method overrides, if any
Parameters:
API Tags:
mixed getFunctionLink(
string
$expr, string
$package, [
$file = false], [
$text = false]
)
|
|
return false or a functionLink to $expr
Parameters:
string |
$expr: |
function name |
string |
$package: |
package name |
|
$file: |
|
|
$text: |
|
API Tags:
Redefined in descendants as:
mixed getGlobalLink(
string
$expr, string
$package, [
$file = false], [
$text = false]
)
|
|
return false or a globalLink to $expr
Parameters:
string |
$expr: |
global variable name (with leading $) |
string |
$package: |
package name |
|
$file: |
|
|
$text: |
|
API Tags:
Return: | returns a defineLink or false if the element is not found in package $package |
See: | defineLink |
Redefined in descendants as:
string getGlobalValue(
string
$value
)
|
|
Parse a global variable's default value for class initialization.
If a global variable's default value is "new class" as in:
This method will document it not as "new Parser" but instead as "new Parser". For examples, see phpdoc.inc. Many global variables are classes, and phpDocumentor links to their documentation
Parameters:
string |
$value: |
default value of a global variable. |
API Tags:
Return: | default global variable value with link to class if it's "new Class" |
Redefined in descendants as:
void getHighlightState(
)
|
|
take abstractLink descendant and text $eltext and return a
unique ID in the format needed for the Converter
Parameters:
API Tags:
Return: | unique identifier of $element |
Abstract: | |
Redefined in descendants as:
string getIncludeValue(
string
$value, string
$ipath
)
|
|
Parse an include's file to see if it is a file documented in this project
Although not very smart yet, this method will try to look for the included file file.ext: include ("file.ext");
If it finds it, it will return a link to the file's documentation. As of 1.2.0rc1, phpDocumentor is smarty enough to find these cases: - absolute path to file
- ./file.ext or ../file.ext
- relpath/to/file.ext if relpath is a subdirectory of the base parse
directory
For examples, see Setup.inc.php includes. Every include auto-links to the documentation for the file that is included
Parameters:
string |
$value: |
file included by include statement. |
string |
$ipath: |
path of file that has the include statement |
API Tags:
Return: | included file with link to docs for file, if found |
mixed &getLink(
string
$expr, [string
$package = false], [array
$packages = false]
)
|
|
The meat of the @see tag and inline {@link} tag
$expr is a string with many allowable formats: - proceduralpagename.ext
- constant_name
- classname::function()
- classname::constantname
- classname::$variablename
- classname
- object classname
- function functionname()
- global $globalvarname
- packagename#expr where expr is any of the above
New in version 1.1, you can explicitly specify a package to link to that is different from the current package. Use the # operator to specify a new package, as in tests#bug-540368.php (which should appear as a link like: "bug-540368.php"). This example links to the procedural page bug-540368.php in package tests. Also, the "function" operator is now used to specifically link to a function instead of a method in the current class. class myclass
{
// from inside the class definition, use "function conflict()" to refer to procedural function "conflict()"
function conflict()
{
}
}
function conflict()
{
}
If classname:: is not present, and the see tag is in a documentation block within a class, then the function uses the classname to search for $expr as a function or variable within classname, or any of its parent classes. given an $expr without '$', '::' or '()' getLink first searches for classes, procedural pages, constants, global variables, and then searches for methods and variables within the default class, and finally for any function
Parameters:
string |
$expr: |
expression to search for a link |
string |
$package: |
package to start searching in |
array |
$packages: |
list of all packages to search in |
API Tags:
Return: | getLink returns a descendant of abstractLink if it finds a link, otherwise it returns a string |
See: | pageLink, functionLink, defineLink, classLink, methodLink, varLink |
See: | Converter::getPageLink(), Converter::getDefineLink(), Converter::getVarLink(), Converter::getFunctionLink(), Converter::getClassLink() |
Redefined in descendants as:
mixed getMethodLink(
string
$expr, string
$class, string
$package, [
$file = false], [
$text = false]
)
|
|
return false or a methodLink to $expr in $class
Parameters:
string |
$expr: |
method name |
string |
$class: |
class name |
string |
$package: |
package name |
|
$file: |
|
|
$text: |
|
API Tags:
Return: | returns a methodLink or false if the element is not found in package $package, class $class |
See: | methodLink |
Redefined in descendants as:
mixed getPageLink(
string
$expr, string
$package, [
$path = false], [
$text = false], [
$packages = false]
)
|
|
return false or a pageLink to $expr
Parameters:
string |
$expr: |
procedural page name |
string |
$package: |
package name |
|
$path: |
|
|
$text: |
|
|
$packages: |
|
API Tags:
Return: | returns a pageLink or false if the element is not found in package $package |
See: | pageLink |
Redefined in descendants as:
array getSortedClassTreeFromClass(
string
$class, string
$package, string
$subpackage
)
|
|
Return a tree of all classes that extend this class
The data structure returned is designed for a non-recursive algorithm, and is somewhat complex. In most cases, the array returned is: array('#root' =>
array('link' => classLink to $class,
'parent' => false,
'children' => array(array('class' => 'childclass1',
'package' => 'child1package'),
array('class' => 'childclass2',
'package' => 'child2package'),...
)
),
'child1package#childclass1' =>
array('link' => classLink to childclass1,
'parent' => '#root',
'children' => array(array('class' => 'kidclass',
'package' => 'kidpackage'),...
)
),
'kidpackage#kidclass' =>
array('link' => classLink to kidclass,
'parent' => 'child1package#childclass1',
'children' => array() // no children
),
....
) To describe this format using language, every class in the tree has an entry in the first level of the array. The index for all child classes that extend the root class is childpackage#childclassname. Each entry in the array has 3 elements: link, parent, and children. - link - a classLink to the current class
- parent - a classLink to the class's parent, or false (except for one special case described below)
- children - an array of arrays, each entry has a 'class' and 'package' index to the child class,
used to find the entry in the big array
special cases are when the #root class has a parent in another package, or when the #root class extends a class not found by phpDocumentor. In the first case, parent will be a classLink to the parent class. In the second, parent will be the extends clause, as in: class X extends Y
{
...
}
in this case, the #root entry will be array('link' => classLink to X, 'parent' => 'Y', children => array(...))The fastest way to design a method to process the array returned is to copy HTMLframesConverter::getRootTree() into your converter and to modify the html to whatever output format you are going to use
Parameters:
string |
$class: |
class name |
string |
$package: |
|
string |
$subpackage: |
|
API Tags:
string getSourceLink(
$path
)
|
|
Parameters:
API Tags:
Redefined in descendants as:
Return parserStringWithInlineTags::Convert() cache state
API Tags:
Redefined in descendants as:
string getTutorialId(
$package,
$subpackage,
$tutorial,
$id
)
|
|
Return a converter-specific id to distinguish tutorials and their sections
Used by {@id}
Parameters:
|
$package: |
|
|
$subpackage: |
|
|
$tutorial: |
|
|
$id: |
|
API Tags:
Redefined in descendants as:
tutorialLink|string getTutorialLink(
string
$expr, [string
$package = false], [string
$subpackage = false], [array
$packages = false]
)
|
|
The meat of the @tutorial tag and inline {@tutorial} tag
Take a string and return an abstract link to the tutorial it represents. Since tutorial naming literally works like the underlying filesystem, the way to reference the tutorial is similar. Tutorials are located in a subdirectory of any directory parsed, which is named 'tutorials/' (we try to make things simple when we can :). They are further organized by package and subpackage as: tutorials/package/subpackage and the files are named *.cls, *.pkg, or *.proc, and so a link to a tutorial named file.cls can be referenced (depending on context) as any of:
The first case will only be needed if file.cls exists in both the current package, in anotherpackage/file.cls and in anotherpackage/subpackage/file.cls and you wish to reference the one in anotherpackage/subpackage. The second case is only needed if you wish to reference file.cls in another package and it is unique in that package. the third will link to the first file.cls it finds using this search method: - current package/subpackage
- all other subpackages of current package
- parent package, if this package has classes that extend classes in
another package
- all other packages
Parameters:
string |
$expr: |
the original expression |
string |
$package: |
package to look in first |
string |
$subpackage: |
subpackage to look in first |
array |
$packages: |
array of package names to search in if not found in parent packages. This is used to limit the search, phpDocumentor automatically searches all packages |
API Tags:
Return: | returns either a link, or the original text, if not found |
Information Tags:
Get a tree structure representing the hierarchy of tutorials
Returns an array in format: array('tutorial' => parserTutorial,
'kids' => array( // child tutorials
array('tutorial' => child parserTutorial,
'kids' => array(...)
)
)
)
Parameters:
Information Tags:
Redefined in descendants as:
mixed getVarLink(
string
$expr, string
$class, string
$package, [
$file = false], [
$text = false]
)
|
|
return false or a varLink to $expr in $class
Parameters:
string |
$expr: |
var name |
string |
$class: |
class name |
string |
$package: |
package name |
|
$file: |
|
|
$text: |
|
API Tags:
Return: | returns a varLink or false if the element is not found in package $package, class $class |
See: | varLink |
Redefined in descendants as:
boolean hasSourceCode(
string
$path
)
|
|
Determine whether an element's file has generated source code, used for linking to line numbers of source.
Wrapper for $sourcePaths in this version
Parameters:
string |
$path: |
full path to the source code file |
false|parserTutorial hasTutorial(
pkg|cls|proc
$type, tutorial
$name, string
$package, [string
$subpackage = '']
)
|
|
Parameters:
pkg|cls|proc |
$type: |
the tutorial type to search for |
tutorial |
$name: |
name |
string |
$package: |
package name |
string |
$subpackage: |
subpackage name, if any |
API Tags:
Return: | if the tutorial exists, return it |
string highlightDocBlockSource(
string
$token, string
$word, [boolean
$preformatted = false]
)
|
|
Used to allow converters to format the source code of DocBlocks the way they'd like.
default returns it unchanged. Mainly used by the HighlightParser
Parameters:
string |
$token: |
name of docblock token type |
string |
$word: |
contents of token |
boolean |
$preformatted: |
whether the contents are preformatted or need modification |
string highlightSource(
integer
$token, string
$word, [boolean
$preformatted = false]
)
|
|
Used to allow converters to format the source code the way they'd like.
default returns it unchanged. Mainly used by the HighlightParser
Parameters:
integer |
$token: |
token value from tokenizer constants |
string |
$word: |
contents of token |
boolean |
$preformatted: |
whether the contents are preformatted or need modification |
string highlightTutorialSource(
string
$token, string
$word, [boolean
$preformatted = false]
)
|
|
Used to allow converters to format the source code of Tutorial XML the way they'd like.
default returns it unchanged. Mainly used by the HighlightParser
Parameters:
string |
$token: |
name of docblock token type |
string |
$word: |
contents of token |
boolean |
$preformatted: |
whether the contents are preformatted or need modification |
string Italicize(
string
$para
)
|
|
Used to convert the contents of <i> in a docblock
Parameters:
API Tags:
string Kbdize(
string
$para
)
|
|
Used to convert the contents of <kbd> in a docblock
Parameters:
API Tags:
string ListItem(
string
$item
)
|
|
Used to convert the contents of <li> in a docblock
Parameters:
API Tags:
Return a Smarty template object to operate with
This returns a Smarty template with pre-initialized variables for use. If the method "SmartyInit()" exists, it is called.
do all necessary output
Parameters:
API Tags:
Redefined in descendants as:
string postProcess(
$text
)
|
|
This version does nothing
Perform necessary post-processing of string data. For example, the HTML Converters should escape < and > to become < and >
Parameters:
API Tags:
Redefined in descendants as:
array prepareDocBlock(
mixed
&$element, [array
$names = array()], [boolean
$nopackage = true]
)
|
|
convert the element's DocBlock for output
This function converts all tags and descriptions for output
Parameters:
mixed |
&$element: |
any descendant of parserElement, or parserData |
array |
$names: |
used to translate tagnames into other tags |
boolean |
$nopackage: |
set to false for pages and classes, the only elements allowed to specify @package |
API Tags:
Return: | Format: array('sdesc' => DocBlock summary
'desc' => DocBlock detailed description
'tags' => array('keyword' => tagname, 'data' => tag description)
known tags
'api_tags' => array('keyword' => tagname, 'data' => tag description)
known api documentation tags
'info_tags' => array('keyword' => tagname, 'data' => tag description)
known informational tags
[ 'utags' => array('keyword' => tagname, 'data' => tag description
unknown tags ]
[ 'vartype' => type from @var/@return tag ]
[ 'var_descrip' => description from @var/@return tag ]
) |
Redefined in descendants as:
string PreserveWhiteSpace(
string
$string
)
|
|
Used to convert the contents of <pre> in a docblock
Parameters:
API Tags:
string ProgramExample(
string
$example, [boolean
$tutorial = false], [
$inlinesourceparse = null], [
$class = null], [
$linenum = null], [
$filesourcepath = null]
)
|
|
Used to convert the <code> tag in a docblock
Parameters:
string |
$example: |
|
boolean |
$tutorial: |
true if this is to highlight a tutorial <programlisting> |
|
$inlinesourceparse: |
|
|
$class: |
|
|
$linenum: |
|
|
$filesourcepath: |
|
API Tags:
Redefined in descendants as:
string returnLink(
string
$link, string
$text
)
|
|
take URL $link and text $text and return a link in the format needed for the Converter
Parameters:
string |
$link: |
URL |
string |
$text: |
text to display |
API Tags:
Return: | link to $link |
Abstract: | |
Redefined in descendants as:
string returnSee(
abstractLink
&$link, [string
$eltext = false]
)
|
|
take abstractLink descendant and text $eltext and return a link
in the format needed for the Converter
Parameters:
API Tags:
Return: | link to $element |
Abstract: | |
Redefined in descendants as:
string Sampize(
string
$para
)
|
|
Used to convert the contents of <samp> in a docblock
Parameters:
API Tags:
void setSourcePaths(
string
$path
)
|
|
Mark a file as having had source code highlighted
Parameters:
string |
$path: |
full path of source file |
void setTargetDir(
string
$dir
)
|
|
Sets the output directory for generated documentation
As of 1.3.0RC6, this also sets the compiled templates directory inside the target directory
Parameters:
string |
$dir: |
the output directory |
Redefined in descendants as:
void setTemplateBase(
string
$base, string
$dir
)
|
|
Set the template directory with a different template base directory
Parameters:
string |
$base: |
template base directory |
string |
$dir: |
template name |
Information Tags:
void setTemplateDir(
string
$dir
)
|
|
sets the template directory based on the $outputformat and $name
Also sets $templateName to the $dir parameter
Parameters:
string |
$dir: |
subdirectory |
Redefined in descendants as:
void sortPageContentsByElementType(
&$pages
)
|
|
sorts $page_contents by element type as well as alphabetically
Parameters:
API Tags:
See: | $sort_page_contents_by_element_type |
string sourceLine(
integer
$linenumber, string
$line, [false|string
$path = false]
)
|
|
Return a line of highlighted source code with formatted line number
If the $path is a full path, then an anchor to the line number will be added as well
Parameters:
integer |
$linenumber: |
line number |
string |
$line: |
highlighted source code line |
false|string |
$path: |
full path to @filesource file this line is a part of, if this is a single line from a complete file. |
API Tags:
Return: | formatted source code line with line number |
Redefined in descendants as:
Initialize highlight caching
void TranslateEntity(
string
$name
)
|
|
Used to translate an XML DocBook entity like ” from a tutorial by reading the options.ini file for the template.
Parameters:
string |
$name: |
entity name |
API Tags:
string TranslateTag(
string
$name, string
$attr, string
$cdata, string
$unconvertedcdata
)
|
|
Used to translate an XML DocBook tag from a tutorial by reading the options.ini file for the template.
Parameters:
string |
$name: |
tag name |
string |
$attr: |
any attributes Format: array(name => value) |
string |
$cdata: |
the tag contents, if any |
string |
$unconvertedcdata: |
the tag contents, if any, unpost-processed |
API Tags:
Redefined in descendants as:
void TutorialExample(
string
$example
)
|
|
Parameters:
Redefined in descendants as:
string unmangle(
string
$sourcecode
)
|
|
Called by parserSourceInlineTag::stringConvert() to allow converters to format the source code the way they'd like.
default returns it unchanged (html with xhtml tags)
Parameters:
string |
$sourcecode: |
output from highlight_string() - use this function to reformat the returned data for Converter-specific output |
API Tags:
Redefined in descendants as:
string vardump_tree(
$tree, [
$indent = '']
)
|
|
Debugging function for dumping $tutorial_tree
Parameters:
string Varize(
string
$para
)
|
|
Used to convert the contents of <var> in a docblock
Parameters:
API Tags:
void walk(
array
&$pages, array
&$package_pages
)
|
|
called by phpDocumentor_IntermediateParser::Convert() to traverse the array of pages and their elements, converting them to the output format
The walk() method should be flexible enough such that it never needs modification. walk() sets up all of the indexes, and sorts everything in logical alphabetical order. It then passes each element individually to Convert(), which then passes to the Convert*() methods. A child Converter need not override any of these unless special functionality must be added. see Converter Default Template Variables for details. {@ and the left indexes specified by $leftindexes, and then sorts them by calling sortIndexes(). Next, it converts all README/CHANGELOG/INSTALL-style files, using Convert_RIC. After this, it passes all package-level docs to Convert(). Then, it calls the index sorting functions formatPkgIndex(), formatIndex() and formatLeftIndex(). Finally, it converts each procedural page in alphabetical order. This stage passes elements from the physical file to Convert() in alphabetical order. First, procedural page elements parserDefine, parserInclude parserGlobal, and parserFunction are passed to Convert(). Then, class elements are passed in this order: parserClass, then all of the parserVars in the class and all of the parserMethods in the class. Classes are in alphabetical order, and both vars and methods are in alphabetical order. Finally, ConvertErrorLog() is called and the data walk is complete.}}
Parameters:
API Tags:
walk over elements by package rather than page
This method is designed for converters like the PDF converter that need everything passed in alphabetical order by package/subpackage and by procedural and then class information
API Tags:
void writeExample(
string
$title, string
$path, string
$source
)
|
|
Write out the formatted source code for an example php file
This function provides the primary functionality for the @example tag.
Parameters:
string |
$title: |
example title |
string |
$path: |
example filename (no path) |
string |
$source: |
fully highlighted/linked source code of the file |
API Tags:
Redefined in descendants as:
void writeFile(
string
$file, string
$data, [boolean
$binary = false]
)
|
|
Writes a file to target dir
Parameters:
string |
$file: |
|
string |
$data: |
|
boolean |
$binary: |
true if the data is binary and not text |
Redefined in descendants as:
void writeSource(
string
$filepath, string
$source
)
|
|
Write out the formatted source code for a php file
This function provides the primary functionality for the @filesource tag.
Parameters:
string |
$filepath: |
full path to the file |
string |
$source: |
fully highlighted/linked source code of the file |
API Tags:
Redefined in descendants as:
void _rmdir(
string
$directory
)
|
|
Completely remove a directory and its contents
Parameters:
void _setHighlightCache(
$type,
$token
)
|
|
Parameters:
Returns the path to this tutorial as a string
Parameters:
|
|