<?php
//
// +------------------------------------------------------------------------+
// | phpDocumentor |
// +------------------------------------------------------------------------+
// | Copyright (c) 2000-2003 Joshua Eichorn, Gregory Beaver |
// | Email jeichorn@phpdoc.org, cellog@phpdoc.org |
// | Web http://www.phpdoc.org |
// | Mirror http://phpdocu.sourceforge.net/ |
// | PEAR http://pear.php.net/package-info.php?pacid=137 |
// +------------------------------------------------------------------------+
// | This source file is subject to version 3.00 of the PHP License, |
// | that is available at http://www.php.net/license/3_0.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +------------------------------------------------------------------------+
//
/**
* Linking to element documentation is performed by the classes in this file.
*
* abstractLink descendants contain enough information to differentiate every
* documentable element, and so can be converted to a link string by
* {@link Converter::returnSee()}
* @package phpDocumentor
* @subpackage Links
*/
/**
* linking classes parent
* @package phpDocumentor
* @subpackage Links
*/
class abstractLink
{
/**#@+ @var string */
var $path;
/**
* phpdoc alias _phpdoc_inc for phpdoc.inc
*/
var $fileAlias = '';
/**
* element type linked to.
* can only be a documentable element
*/
var $type = '';
var $name = '';
var $category = '';
var $package = '';
var $subpackage = '';
/**#@-*/
/**
* @param string full path to file containing element
* @param string page name, as configured by {@link Parser::parse}
* @param string element name
* @param string package element is in
* @param string subpackage element is in
* @param string optional category that documentation is in
*/
function addLink($path, $fileAlias, $name, $package, $subpackage, $category = false)
{
$this->path = $path;
$this->fileAlias = $fileAlias;
$this->name = $name;
$this->category = $category;
$this->package = $package;
$this->subpackage = $subpackage;
}
}
/**
* procedural page link
* @package phpDocumentor
* @subpackage Links
*/
class pageLink extends abstractLink
{
/** @var string */
var $type = 'page';
}
/**
* function link
* @package phpDocumentor
* @subpackage Links
*/
class functionLink extends abstractLink
{
/** @var string */
var $type = 'function';
}
/**
* define link
* @package phpDocumentor
* @subpackage Links
*/
class defineLink extends abstractLink
{
/** @var string */
var $type = 'define';
}
/**
* global variable link
* @package phpDocumentor
* @subpackage Links
*/
class globalLink extends abstractLink
{
/** @var string */
var $type = 'global';
}
/**
* class link
* @package phpDocumentor
* @subpackage Links
*/
class classLink extends abstractLink
{
/** @var string */
var $type = 'class';
}
/**
* method link
* @package phpDocumentor
* @subpackage Links
*/
class methodLink extends abstractLink
{
/** @var string */
var $type = 'method';
/** @var string */
var $class = '';
/**
* @param string class name
* @param string full path to file containing element
* @param string page name, as configured by {@link Parser::parse}
* @param string element name
* @param string package element is in
* @param string subpackage element is in
*/
function addLink($class, $path ,$fileAlias,$name,$package,$subpackage, $category = false)
{
$this->class = $class;
abstractLink::addLink($path, $fileAlias,$name,$package,$subpackage, $category);
}
}
/**
* class variable link
* @package phpDocumentor
* @subpackage Links
*/
class varLink extends methodLink
{
/** @var string */
var $type = 'var';
}
/**
* class constant link
* @package phpDocumentor
* @subpackage Links
*/
class constLink extends methodLink
{
/** @var string */
var $type = 'const';
}
/**
* tutorial link
* @package phpDocumentor
* @subpackage Links
*/
class tutorialLink extends abstractLink
{
/**#@+ @var string */
var $type = 'tutorial';
var $section = '';
var $title = false;
/**#@-*/
/**
* @param string section/subsection name
* @param string full path to file containing element
* @param string page name, as configured by {@link Parser::parse}
* @param string element name
* @param string package element is in
* @param string subpackage element is in
* @param string title of tutorial
*/
function addLink($section,$path,$name,$package,$subpackage,$title = false, $category = false)
{
$this->section = $section;
$this->title = $title;
parent::addLink($path,'',$name,$package,$subpackage, $category);
}
}
?>