Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 6 Nächste Version anzeigen »

Beschreibung

Der CrudManager ermöglicht es Kopier- und Löschaktionen über eine Konfiguration zu steuern und zu reglementieren. Er setzt auf Brandbox/Doctrine auf und nutzt die folgenden Funktionen:

Die Verwendung des CrudManager ermöglicht dabei die Einschränkung von potenziell Ressourcenhungrigen Anfragen. Da Datensätze rekursiv kopiert/gelöscht werden können, ist es hier nun möglich die Rekursionspfade zu definieren und ggf. zu limitieren.

MethodeBeschreibung
copyDie Methode ermöglich das Kopieren von Datensätzen, wie in Kopieren von Datensätzen beschrieben.
deleteDie Methode ermöglicht das Löschen von Datensätzen, wie in Löschen von Datensätzen beschrieben.

Definition per crud.json

Steht für ein Repository keine crud.json zur Verfügung, werden die Standard-Funktionen angeboten. 

Eine crud.json muss dem in framework/resources/crud-schema.json beschriebenen JSON-Schema folgen. Eine Entwicklungsumgebung wie bspw. PHPStorm verfügt über eine einfache Validierungmöglichkeit für die Schemata.

Prohibited

In dem Array kann angegeben welche Standard-Aktionen verboten werden können. Standardmäßig sind alle Standard-Aktionen erlaubt.

Multiple

Mit multiple gibt man an, ob der Anwender mehrere Datensätze des Typs kopieren/löschen kann. 

Guided Actions

Geführte Aktionen ermöglichen die Definition einer Rekursionskette sowie die Zuordnung einer Kopier- und Löschaktion zu einem spezifischen Label. Auch hier kann entschieden werden, ob mehrere Datensätze verarbeitet werden dürfen.

{
    "repositories": [
        {
            "repository": "MyRepository",
            "prohibited": [
                "CopyRoot",
                "CopyDefault",
                "CopyRelate",
                "CopyRecursive",
                "DeleteDefault",
                "DeleteRecursive"
            ],
            "multiple": false,
            "guidedActions": [
                {
                    "identifier": "myGuidedAction",
                    "label": {
                        "de": "Lorem Ipsum...",
                        "en": "Lorem Ipsum..."
                    },
                    "actions": [
                        "CopyRecursive",
                        "DeleteRecursive"
                    ],
                    "multiple": false,
                    "nodes": [
                        {
                            "repository": "MyRepository",
                            "nodes": [
                                {
                                    "repository": "MyChildRepository"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

Beispiel

use Brandbox\Framework\Brandbox\Crud;  

$ids = [1,2,3,4,5];
$entities = ['MyRepository' => $ids]  

$logger = $this
  ->staticController(Crud\CrudManager::class)
  ->copy($entities, 'myGuidedAction')
;

$logger = $this
  ->staticController(Crud\CrudManager::class)
  ->delete($entities, 'myGuidedAction')
;

Versionshinweise

brandbox 8.0 (framework 1.29.0)

Das Package steht ab framwork 1.29.0 zur Verfügung

  • Keine Stichwörter