EiSpec

Ei

EiSpecs bilden das zentrale Element im Rocket. Du kannst pro Entity eine EiSpec definieren. Diese EiSpec regelt, wie die Entity im Rocket verwallet werden kann. Sie spezifiziert, wie die Formulare aussehen, mit denen der Rocket-Nutzer Entity-Objekte erfassen oder bearbeiten kann, welche Aktionen (z. B. Editieren, Lösche usw.) der Rocket-Nutzer auf den jeweligen Entity-Objekten / Datensätzen ausführen darf.

  1. EiSpec erfassen
  2. Identity String Pattern
  3. Menu Item

EiSpec erfassen

Gehen wir davon aus, dass wir ein Modul mit Namespace "atusch" erstellt und folgende Entity implementiert haben:

<?php
namespace atusch\bo;

use n2n\reflection\ObjectAdapter;

class BlogArticle extends ObjectAdapter {
    private $id;
    private $title;    
    private $text;
    
    // getters / setters
}

Wir möchten dem Rocket-Nutzer num ermöglichen die Objekte dieser Entity (Datensätze) zu verwalten. Hierzu benötigen wir eine EiSpec. Jede EiSpec muss einem Modul zugeordnet sein. Die EiSpecs müssen in der JSON-Datei rocket/specs.json im ETC-Verzeichnis des jeweiligen Modules definiert werden.

Die EiSpec der Entity BlogArticle definieren wir also in der JSON-Datei etc/atusch/rocket/specs.json.

{
    "specs": {
        "atusch-blog-article": {
            "type": "entity",
            "label": "Article",
            "pluralLabel": "Articles",
            "entity": "atusch\\bo\\BlogArticle"
        }
    }
}

Der Schlüssel "atusch-blog-article" entspricht der Id der EiSpec. Sie identifiziert die EiSpec global eindeutig und sollte daher immer mit dem Modul-Namespace beginnen. Enthält der Module-Namespace mehrere Level, müssen diese mit "-" getrennt werden (z. B. "com-example-blog-article").

Als nächstes müssen wir die EiFields und EiCommands unserer EiSpec definieren. Eine Anleitung findest du in den verlinkten Artikeln.

Nutze den Hangar, um EiSpecs einfach erfassen zu können. Ausschnitte der specs.json in dieser Dokumentation dienen nur der Veranschaulichung. Es ist nicht nötig, die specs.json manuell zu bearbeiten.

Identity String Pattern

 

{
    "specs": {
        "atusch-blog-article": {
            "type": "entity",
            "label": "Article",
            "pluralLabel": "Articles",
            "identityStringPattern": "{title} [{id}]",
            "entity": "atusch\\bo\\BlogArticle",
            "fields": {
                "id": {
                    "class": "rocket\\spec\\ei\\component\\field\\impl\\numeric\\IntegerEiField",
                    "label": "Id",
                    "props": {
                        "displayInEditView": false,
                        "displayInAddView": false,
                        "readOnly": true
                    },
                    "objectProperty": "id",
                    "entityProperty": "id"
                },
                "title": {
                    "class": "rocket\\spec\\ei\\component\\field\\impl\\string\\StringEiField",
                    "label": "Title",
                    "props": {
                        "mandatory": true,
                        "maxlength": 255,
                        "multiline": false
                    },
                    "objectProperty": "title",
                    "entityProperty": "title"
                },
                "text": {
                    "class": "rocket\\spec\\ei\\component\\field\\impl\\string\\StringEiField",
                    "label": "Text",
                    "props": {
                        "mandatory": false,
                        "multiline": true
                    },
                    "objectProperty": "text",
                    "entityProperty": "text"
                }
            },
            "commands": {
                ...
            }
        }
    }
}

 

 

Nutze den Hangar, um EiSpecs einfach erfassen zu können. Ausschnitte der specs.json in dieser Dokumentation dienen nur der Veranschaulichung. Es ist nicht nötig, die specs.json manuell zu bearbeiten.
« CSS Ei Field »

Kommentare

Du musst eingeloggt sein, damit du Beiträge erstellen kannst.

Fragen