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 ein Entity zu erstellen, welches das zu ursprüngliche Entity erweitert.

Beispiel

...

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

declare(strict_types=1);

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

    use Symfony\Component\Validator\Constraints;
    use Doctrine\ORM\Mapping;

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


code
Info
title

Wichtig

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

languagejs
title


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
languagepowershelltitleComposer-Update
php composer.phar install
php composer.phar update

...