<?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); } } ?>