Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Um nun individuelle Eigenschaften in bestehenden Entities zu ergänzen, auf die man keinen direkten Zugriff hat, ist es nötig en ein Entity zu erstellen, welches das zu ursprüngliche Entity erweitert. Folgend die Beispieldateien:

...

Beispiel

Beispiel (shopArticle.php), um shopArticle zu erweitern
Codeblock
languagephp
<?php

declare(strict_types=1);

namespace Brandbox\Dev\Example\DbalExtend\Lib\Extend {

    use DoctrineSymfony\Component\ORMValidator\MappingConstraints;
     class shopArticleuse Doctrine\ORM\Mapping;

    class shopArticle
{    {    
  /**          * @Mapping#[Mapping\Column(name=": 'shop_article_example"', type="string": 'string', nullable=: false, length=: 255, options={"default": ""})
         *
         * @constraint NotBlank()
         * @constraint NotHtml()
         * @constraint Length(max=255)
         */
        : ['default': '']]
         #[Constraints\NotBlank, Constraints\NotHtml, Constraints\Length(max: 255)]
         public string $shopArticleExample = '';
    }
}


title
Info
title

Wichtig

Achten Sie auf den Namespace DbalExtend\Lib\Extend in einem beliebigen Package.

Codeblock
languagejs


Beispiel (modelling.json), um die Eigenschaft zu beschreiben
Codeblock
languagejs
{
    "type": "modelling",
    "repositories": [
        {
            "identifier": "shopArticle",
            "order": [
                "general",
                "shopArticleExample"
            ],
            "groups": [
                {
                    "identifier": "general",
                    "sets": [
                        {
                            "identifier": "general",
                            "order": [
                                "shopArticleName",
                                "ShopArticleExample"
                            ],
                            "columns": [
                                {
                                    "type": "Input",
                                    "identifier": "ShopArticleExample",
                                    "label": {
                                        "de": "Beispiel",
                                        "en": "Example"
                                    },
                                    "flags": ["result"],
                                    "constraint": [
                                        "NotBlank()"
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

Umgang mit übersetzbaren Eigenschaften

Soll eine ergänzte Eigenschaft auch übersetzbar sein, muss die entsprechende Translation-Entity ebenfalls erweitert werden.
Erstellen Sie in diesem Fall für das Translation-Entity ebenfalls ein Extend-Entity. Zusätzlich ergänzen Sie bitte das flag "translatable" bei der entsprechenden Eigenschaft in der modelling.json:

Auszug (modelling.json), um die Eigenschaft als übersetzbar zu markieren
Codeblock
languagejs
"flags": ["result", "translatable"]

Achtung: ist für eine Entity keine Translation-Entity definiert, kann diese auch nicht erweitert werden.

Composer

Nach jeder Änderung an den Entity-Klassen

...

ist es notwendig, mit Composer brandbox

...

erneut zu installieren:

Composer-Update
Codeblock
languagepowershelltitleBeispiel (shopArticle.php), um shopArticle zu erweitern
php composer.phar install
php composer.phar update

...