All Downloads are FREE. Search and download functionalities are using the official Maven repository.

php-symfony.model_generic.mustache Maven / Gradle / Ivy

There is a newer version: 7.6.0
Show newest version
class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}
{
    {{#vars}}{{>model_variables}}
    {{/vars}}
    /**
     * Constructor
     * @param array|null $data Associated array of property values initializing the model
     */
    public function __construct(array $data = null)
    {
        {{#parentSchema}}
        parent::__construct($data);

        {{/parentSchema}}
        if (is_array($data)) {
            {{#vars}}
            $this->{{name}} = array_key_exists('{{name}}', $data) ? $data['{{name}}'] : $this->{{name}};
            {{/vars}}
        }
    }
    {{#vars}}

    /**
     * Gets {{name}}.
     *
     * @return {{{vendorExtensions.x-comment-type}}}
     */
    public function {{getter}}(){{#vendorExtensions.x-parameter-type}}: {{vendorExtensions.x-parameter-type}}{{/vendorExtensions.x-parameter-type}}
    {
        return $this->{{name}};
    }

    {{#isEnumRef}}
    /**
    * Gets {{name}} for serialization.
    *
    * @return string|null
    */
    public function getSerialized{{nameInCamelCase}}(): string|null
    {
        return $this->{{name}}?->value ? (string) $this->{{name}}->value : null;
    }
    {{/isEnumRef}}

    {{#isContainer}}
    {{#items}}
    {{#isEnumRef}}
    /**
    * Gets {{name}} for serialization.
    *
    * @return array
    */
    public function getSerialized{{nameInCamelCase}}(): array
    {
        return array_map(
            static fn ($value) => (string) $value->value,
            $this->test ?? []
        );
    }
    {{/isEnumRef}}
    {{/items}}
    {{/isContainer}}

    /**
     * Sets {{name}}.
     *
     * @param {{{vendorExtensions.x-comment-type}}} ${{name}}{{#description}}  {{{.}}}{{/description}}
     *
     * @return $this
     */
    public function {{setter}}({{#vendorExtensions.x-parameter-type}}{{vendorExtensions.x-parameter-type}} {{/vendorExtensions.x-parameter-type}}${{name}}{{^required}} = null{{/required}}): self
    {
        $this->{{name}} = ${{name}};

        return $this;
    }
    {{/vars}}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy