{% extends 'layout.txt.twig' %} {% block content %} [[start|🔙 Back]] {% if node.tags['internal'] is defined %} ====== {{ node.name }} ====== This interface is "internal", and thus is not documented! {% elseif node.tags['api'] is not defined and node.tags['api-advanced'] is not defined and node.tags['overwritable-hook'] is not defined and node.tags['extension-hook'] is not defined %} ====== {{ node.name }} ====== This interface is neither "api", "overwritable-hook" or "extension-hook", and thus is not documented! {% else %} ====== {{ node.name }} ====== {% if node.deprecated %}deprecated{% endif %} {% if node.abstract %}abstract{% endif %} {% if node.final %}final{% endif %} {% include 'includes/wrap-tags.txt.twig' with {structure:node, wrap: 'safety', wrapTags: ['api', 'api-advanced', 'overwritable-hook', 'extension-hook']} %} {% if node.deprecated %} === **Deprecated**=== //{{ node.tags.deprecated[0].description }}// {% endif %} == {{ node.summary|replace({"\n":""})|raw }} == {{ node.description|markdown|raw }} {% include 'includes/code-examples.txt.twig' with {structure:node, title_level: '====='} %} {% set class = node.parent %} {% block hierarchy_element %} {% if class and class.name is defined and class.name|trim != '' %} ==== parent ==== {% set child = class %} {% set class = class.parent %} {{ block('hierarchy_element') }} [[{{ child.name }}|{{ child.name }}]] {% endif %} {% endblock %} {% for interface in node.interfaces|sort_asc %} {% if loop.first %} ==== Implements ==== {% endif %} {% if loop.length > 1 %} * {% endif %}{{ interface.fullyQualifiedStructuralElementName ?: interface }} {% endfor %} {% for trait in node.usedTraits|sort_asc %} {% if loop.first %} ==== Uses traits ==== {% endif %} {% if loop.length > 1 %} * {% endif %}{{ trait.fullyQualifiedStructuralElementName ?: trait }} {% endfor %} {% include 'includes/see-also.txt.twig' with {structure:node, title_level: '==='} %} {% include 'includes/tags.txt.twig' with {structure:node, title_level: '=====', blacklist: ['link', 'see', 'abstract', 'example', 'method', 'property', 'property-read', 'property-write', 'package', 'subpackage', 'phpdoc-tuning-exclude-inherited', 'api', 'api-advanced', 'overwritable-hook', 'extension-hook', 'copyright', 'license', 'code-example']} %} {% set methods = node.inheritedMethods.merge(node.methods) %} {% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'api'} %} {% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'api-advanced'} %} {% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'overwritable-hook'} %} {% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'extension-hook'} %} {% for method in methods|sort_asc if method.visibility == 'public' %} {%- if loop.first %} ===== Public methods ===== {% endif %} {{ block('method') }} {% endfor %} {% for method in methods|sort_asc if method.visibility == 'protected' %} {%- if loop.first %} ===== Protected methods ===== {% endif %} {{ block('method') }} {% endfor %} {% set constants = node.inheritedConstants.merge(node.constants) %} {% if constants|length > 0 %} ===== Constants ===== {% for constant in constants|sort_asc %} {{ block('constant') }} {% endfor %} {% endif %} {#{% set properties = node.inheritedProperties.merge(node.properties) %}#} {#{% for property in properties|sort_asc if property.visibility == 'public' %}#} {#{%- if loop.first %}#} {#===== Public properties =====#} {#{% endif %}#} {#{{ block('property') }}#} {#{% endfor %}#} {#{% for property in properties|sort_asc if property.visibility == 'protected' %}#} {#{%- if loop.first %}#} {#===== Protected properties =====#} {#{% endif %}#} {#{{ block('property') }}#} {#{% endfor %}#} {%- endif %} {#{% elseif node.tags['xxx'] is not defined and ... #} [[start|🔙 Back]] {% endblock %}