phonetworks/pho-compiler

View on GitHub
src/Pho/Compiler/Transcoders/templates/Edge.mustache

Summary

Maintainability
Test Coverage
<?php

{{#multiple_tails}}
namespace PhoNetworksAutogenerated\Edges 
{{/multiple_tails}}
{{^multiple_tails}}
namespace PhoNetworksAutogenerated\{{ tail_node }}Out 
{{/multiple_tails}}
{

use Pho\Kernel\Traits\Edge\PersistentTrait;
use Pho\Framework;
use Pho\Kernel\Foundation;

{{pretext}}

/*****************************************************
 * This file was auto-generated by pho-compiler
 * For more information, visit http://phonetworks.org
 ******************************************************/

class {{ class_name }} extends {{ extends }} {

    {{ ^volatile }}
    use PersistentTrait;
    {{ /volatile}}

    const HEAD_LABEL = "{{ label_head_singular }}";
    const HEAD_LABELS = "{{ label_head_plural }}";
    const TAIL_LABEL = "{{ label_tail_singular }}";
    const TAIL_LABELS = "{{ label_tail_plural }}";
    
    const TAIL_CALLABLE_LABEL = "{{ label_tail_callable_singular }}";
    const TAIL_CALLABLE_LABELS = "{{ label_tail_callable_plural }}";
    const HEAD_CALLABLE_LABEL = "{{ label_head_callable_singular }}";
    const HEAD_CALLABLE_LABELS = "{{ label_head_callable_plural }}";

    const FEED_SIMPLE_LABEL = "{{ label_simple_feed }}";
    const FEED_AGGREGATED_LABEL = "{{ label_aggregated_feed }}";
    
    {{#head_nodes_only}}
    const SETTABLES = [{{ head_nodes_only }}];
    {{/head_nodes_only}}

    {{^head_nodes_only}}
    {{# formative }}
    const FORMABLES = [{{ head_nodes }}];
    {{/formative}}
    {{^formative}}
    const SETTABLES_EXTRA = [{{ head_nodes }}];
    {{/formative}}
    
    {{/head_nodes_only}}

    {{# fields_exists }}
    const FIELDS = "{{{ fields }}}";
    {{/ fields_exists }}

}

/* Predicate to load as a partial */
{{> partials/Predicate }} 

/* Notification to load if it's a subtype of write or mention. */
{{#with_notification}}
{{> partials/Notification }} 
{{/with_notification}}

}

/*****************************************************
 * Timestamp: {{ compilation_timestamp }}
 * Size (in bytes): -|-SIZE_IN_BYTES-|-
 * Compilation Time: {{ compilation_time }}
 * -|-HASH-|-
 ******************************************************/