summaryrefslogtreecommitdiff
path: root/buildscripts/apigen/pradosoft/function.latte
blob: 5797cf173ca98567c40e2e12608e1f479f0b8d10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
{layout '@layout.latte'}
{var $active = 'function'}

{block title}{if $function->deprecated}Deprecated {/if}Function {$function->name}{/block}

{block content}
<div id="content" class="function">
	<h1 n:class="$function->deprecated ? deprecated">Function {$function->shortName}</h1>

	{if $function->valid}

	<div class="description" n:if="$template->longDescription($function)">
	{$function|longDescription|noescape}
	</div>

	<div class="info">
		{if $function->inNamespace()}<b>Namespace:</b> {$function->namespaceName|namespaceLinks|noescape}<br>{/if}
		{if $function->inPackage()}<b>Package:</b> {$function->packageName|packageLinks|noescape}<br>{/if}
		{foreach $template->annotationSort($template->annotationFilter($function->annotations, array('param', 'return', 'throws'))) as $annotation => $values}
			{foreach $values as $value}
				<b>{$annotation|annotationBeautify}{if $value}:{/if}</b>
				{$value|annotation:$annotation:$function|noescape}<br>
			{/foreach}
		{/foreach}
		<b>Located at</b>
		<a n:tag-if="$config->sourceCode" href="{$function|sourceUrl}" title="Go to source code">
			{$function->fileName|relativePath}
		</a><br>
	</div>

	{var $annotations = $function->annotations}

	<table class="summary" id="parameters" n:if="count($function->parameters)">
	<caption>Parameters summary</caption>
	<tr n:foreach="$function->parameters as $parameter" id="${$parameter->name}">
		<td class="name"><code>{$parameter->typeHint|typeLinks:$function|noescape}</code></td>
		<td class="value"><code>{block|strip}
			<var>{if $parameter->passedByReference}&amp; {/if}${$parameter->name}</var>{if $parameter->defaultValueAvailable} = {$parameter->defaultValueDefinition|highlightPHP:$function|noescape}{elseif $parameter->unlimited},…{/if}
		{/block}</code></td>
		<td>{$parameter->description|description:$function}</td>
	</tr>
	</table>

	<table class="summary" id="returns" n:if="isset($annotations['return']) && 'void' !== $annotations['return'][0]">
	<caption>Return value summary</caption>
	<tr>
		<td class="name"><code>
			{$annotations['return'][0]|typeLinks:$function|noescape}
		</code></td>
		<td>
			{$annotations['return'][0]|description:$function|noescape}
		</td>
	</tr>
	</table>

	<table class="summary" id="throws" n:ifset="$annotations['throws']">
	<caption>Thrown exceptions summary</caption>
	<tr n:foreach="$annotations['throws'] as $throws">
		<td class="name"><code>
			{$throws|typeLinks:$function|noescape}
		</code></td>
		<td>
			{$throws|description:$function|noescape}
		</td>
	</tr>
	</table>

	{else}
		<div class="invalid">
			<p>
				Documentation of this function could not be generated.
			</p>
			<p>
				Function was originally declared in {$function->fileName|relativePath} and is invalid because of:
			</p>
			<ul>
				<li n:foreach="$function->reasons as $reason">Function was redeclared in {$reason->getSender()->getFileName()|relativePath}.</li>
			</ul>
		</div>
	{/if}
</div>
{/block}