Abstract Class yii\apidoc\renderers\ApiRenderer
| Inheritance | yii\apidoc\renderers\ApiRenderer » yii\apidoc\renderers\BaseRenderer » yii\base\Component | 
|---|---|
| Subclasses | yii\apidoc\templates\bootstrap\ApiRenderer, yii\apidoc\templates\html\ApiRenderer, yii\apidoc\templates\json\ApiRenderer, yii\apidoc\templates\online\ApiRenderer | 
| Available since extension's version | 2.0 | 
| Source Code | https://github.com/yiisoft/yii2-apidoc/blob/master/renderers/ApiRenderer.php | 
Base class for all API documentation renderers
Public Properties
| Property | Type | Description | Defined By | 
|---|---|---|---|
| $apiContext | yii\apidoc\models\Context | The yii\apidoc\models\Context currently being rendered. | yii\apidoc\renderers\BaseRenderer | 
| $apiUrl | yii\apidoc\renderers\BaseRenderer | ||
| $controller | \yii\console\Controller | The apidoc controller instance. | yii\apidoc\renderers\BaseRenderer | 
| $guidePrefix | yii\apidoc\renderers\BaseRenderer | ||
| $guideUrl | yii\apidoc\renderers\BaseRenderer | ||
| $pageTitle | string | String to use as the title of the generated page. | yii\apidoc\renderers\BaseRenderer | 
Public Methods
| Method | Description | Defined By | 
|---|---|---|
| createSubjectLink() | Creates a link to a subject | yii\apidoc\renderers\BaseRenderer | 
| createTypeLink() | Creates a link to a type (class, interface or trait) | yii\apidoc\renderers\BaseRenderer | 
| generateApiUrl() | Generate an url to a type in apidocs | yii\apidoc\renderers\BaseRenderer | 
| generateGuideUrl() | Generate an url to a guide page | yii\apidoc\renderers\BaseRenderer | 
| init() | yii\apidoc\renderers\BaseRenderer | |
| render() | Renders a given yii\apidoc\models\Context. | yii\apidoc\renderers\ApiRenderer | 
Protected Methods
| Method | Description | Defined By | 
|---|---|---|
| generateLink() | Generate link markup | yii\apidoc\renderers\BaseRenderer | 
Constants
| Constant | Value | Description | Defined By | 
|---|---|---|---|
| GUIDE_PREFIX | 'guide-' | Deprecated since 2.0.1 use $guidePrefix instead which allows configuring this options | yii\apidoc\renderers\BaseRenderer | 
Method Details
Defined in: yii\apidoc\renderers\BaseRenderer::createSubjectLink()
Creates a link to a subject
| public string createSubjectLink ( $subject, $title = null, $options = [] ) | ||
| $subject | yii\apidoc\models\PropertyDoc|yii\apidoc\models\MethodDoc|yii\apidoc\models\ConstDoc|yii\apidoc\models\EventDoc | |
| $title | string | |
| $options | array | Additional HTML attributes for the link. | 
                public function createSubjectLink($subject, $title = null, $options = [])
{
    if ($title === null) {
        if ($subject instanceof MethodDoc) {
            $title = $subject->name . '()';
        } else {
            $title = $subject->name;
        }
    }
    if (($type = $this->apiContext->getType($subject->definedBy)) === null) {
        return $subject->name;
    } else {
        $link = $this->generateApiUrl($type->name);
        if ($subject instanceof MethodDoc) {
            $link .= '#' . $subject->name . '()';
        } else {
            $link .= '#' . $subject->name;
        }
        $link .= '-detail';
        return $this->generateLink($title, $link, $options);
    }
}
            
        Defined in: yii\apidoc\renderers\BaseRenderer::createTypeLink()
Creates a link to a type (class, interface or trait)
| public string createTypeLink ( $types, $context = null, $title = null, $options = [] ) | ||
| $types | yii\apidoc\models\ClassDoc|yii\apidoc\models\InterfaceDoc|yii\apidoc\models\TraitDoc|yii\apidoc\models\ClassDoc[]|yii\apidoc\models\InterfaceDoc[]|yii\apidoc\models\TraitDoc[]|string|string[] | |
| $context | yii\apidoc\models\BaseDoc | |
| $title | string | A title to be used for the link TODO check whether [[yii...|Class]] is supported | 
| $options | array | Additional HTML attributes for the link. | 
                public function createTypeLink($types, $context = null, $title = null, $options = [])
{
    if (!is_array($types)) {
        $types = [$types];
    }
    if (count($types) > 1) {
        $title = null;
    }
    $links = [];
    foreach ($types as $type) {
        $postfix = '';
        if (is_string($type)) {
            if (!empty($type) && substr_compare($type, '[]', -2, 2) === 0) {
                $postfix = '[]';
                $type = substr($type, 0, -2);
            }
            if ($type === '$this' && $context instanceof TypeDoc) {
                $title = '$this';
                $type = $context;
            } elseif (($t = $this->apiContext->getType(ltrim($type, '\\'))) !== null) {
                $type = $t;
            } elseif (!empty($type) && $type[0] !== '\\' && ($t = $this->apiContext->getType($this->resolveNamespace($context) . '\\' . ltrim($type, '\\'))) !== null) {
                $type = $t;
            } else {
                ltrim($type, '\\');
            }
        }
        if (is_string($type)) {
            $linkText = ltrim($type, '\\');
            if ($title !== null) {
                $linkText = $title;
                $title = null;
            }
            $phpTypes = [
                'callable',
                'array',
                'string',
                'boolean',
                'bool',
                'integer',
                'int',
                'float',
                'object',
                'resource',
                'null',
                'false',
                'true',
            ];
            $phpTypeAliases = [
                'true' => 'boolean',
                'false' => 'boolean',
                'bool' => 'boolean',
                'int' => 'integer',
            ];
            $phpTypeDisplayAliases = [
                'bool' => 'boolean',
                'int' => 'integer',
            ];
            // check if it is PHP internal class
            if (((class_exists($type, false) || interface_exists($type, false) || trait_exists($type, false)) &&
                ($reflection = new \ReflectionClass($type)) && $reflection->isInternal())) {
                $links[] = $this->generateLink($linkText, 'http://www.php.net/class.' . strtolower(ltrim($type, '\\')), $options) . $postfix;
            } elseif (in_array($type, $phpTypes)) {
                if (isset($phpTypeDisplayAliases[$type])) {
                    $linkText = $phpTypeDisplayAliases[$type];
                }
                if (isset($phpTypeAliases[$type])) {
                    $type = $phpTypeAliases[$type];
                }
                $links[] = $this->generateLink($linkText, 'http://www.php.net/language.types.' . strtolower(ltrim($type, '\\')), $options) . $postfix;
            } else {
                $links[] = $type . $postfix;
            }
        } elseif ($type instanceof BaseDoc) {
            $linkText = $type->name;
            if ($title !== null) {
                $linkText = $title;
                $title = null;
            }
            $links[] = $this->generateLink($linkText, $this->generateApiUrl($type->name), $options) . $postfix;
        }
    }
    return implode('|', $links);
}
            
        Defined in: yii\apidoc\renderers\BaseRenderer::generateApiUrl()
Generate an url to a type in apidocs
| public abstract mixed generateApiUrl ( $typeName ) | ||
| $typeName | mixed | |
                abstract public function generateApiUrl($typeName);
            
        Defined in: yii\apidoc\renderers\BaseRenderer::generateGuideUrl()
Generate an url to a guide page
| public string generateGuideUrl ( $file ) | ||
| $file | string | |
                public function generateGuideUrl($file)
{
    //skip parsing external url
    if ( (strpos($file, 'https://') !== false) || (strpos($file, 'http://') !== false) ) {
        return $file;
    }
    $hash = '';
    if (($pos = strpos($file, '#')) !== false) {
        $hash = substr($file, $pos);
        $file = substr($file, 0, $pos);
    }
    return rtrim($this->guideUrl, '/') . '/' . $this->guidePrefix . basename($file, '.md') . '.html' . $hash;
}
            
        Defined in: yii\apidoc\renderers\BaseRenderer::generateLink()
Generate link markup
| protected abstract mixed generateLink ( $text, $href, $options = [] ) | ||
| $text | mixed | |
| $href | mixed | |
| $options | array | Additional HTML attributes for the link. | 
                abstract protected function generateLink($text, $href, $options = []);
            
        Defined in: yii\apidoc\renderers\BaseRenderer::init()
| public void init ( ) | 
                public function init()
{
    ApiMarkdown::$renderer = $this;
    ApiMarkdownLaTeX::$renderer = $this;
}
            
        Renders a given yii\apidoc\models\Context.
| public abstract void render ( $context, $targetDir ) | ||
| $context | yii\apidoc\models\Context | The api documentation context to render. | 
| $targetDir | mixed | |
                abstract public function render($context, $targetDir);