{{foreach $data as $className => $constructs}}
{$className}
{{if isset( $constructs['properties'] )}}
{lang="plugin_hook_properties"}
{{foreach $constructs['properties'] as $property}}
{{if $property->isPublic()}}
{{else}}
{{endif}} {{if $property->isStatic()}} static {{endif}} ${$property->getName()}
{{endforeach}}
{{endif}} {{if isset( $constructs['methods'] )}}
{lang="plugin_hook_methods"}
{{foreach $constructs['methods'] as $method}}
{{if $method->isPublic()}}
{{else}}
{{endif}} {{if $method->isFinal()}} final {{endif}} {{if $method->isStatic()}} static {{endif}} {{if $method->isAbstract()}} abstract {{endif}} {{if !$method->getNumberOfParameters()}} {$method->getName()}() {{else}} {{if !$method->getNumberOfRequiredParameters()}} {$method->getName()}( {$method->getNumberOfParameters()} ) {{elseif $method->getNumberOfParameters() != $method->getNumberOfRequiredParameters()}} {$method->getName()}( {$method->getNumberOfRequiredParameters()} [, {expression="$method->getNumberOfParameters() - $method->getNumberOfRequiredParameters()"} ] ) {{else}} {$method->getName()}( [ {$method->getNumberOfParameters()} ] ) {{endif}} {{endif}}
{{endforeach}}
{{endif}} {{endforeach}}