Versionen im Vergleich

Schlüssel

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

Struktur

Das App folgt einer Reihe von Konventionen, die dabei helfen, den Code zwischen allen brandbox Apps konsistent zu halten. Siehe Namenskonventionen der Apps.

Codeblock
languagetext
brandbox/
   └─ {packageapp-name}/
      │ 
      ├─ resources/
      │  ├─ .phpstorm.meta.php/
      │  ├─ data.conf/
      │  ├─ languages/
      │  │  ├─ de.xml
      │  │  └─ en.xml
      │  ├─ js/
      │  ├─ dashboard.json
      │  └─ dashboard-config.json
      │ 
      ├─ src/ (PSR-4)
      |  └─ {PackageNamespace}/
      |     └─ {PackageName}/
      |        ├─ Lib/
      |        | ├─ Entity/
      |        | ├─ Event/
      |        | ├─ Exceptions/
      |        | ├─ Execute/ 
      |        | ├─ Listener/
      │        | ├─ Migration/
      |        | ├─ Repository/
      |        | ├─ Request/
      |        | ├─ Structure/ 
      |        | └─ Subscriber/
      |        ├─ config.json
      |        ├─ crud.json
      |        ├─ modelling.json
      |        ├─ structure.json
      |        ├─ widget.json
      |        └─ *Manager.php
      |        └─ Engine.php 
      │
      ├─ test/ (PSR-4)
      │  ├─ Cases/
      │  ├─ Resources/
      │  └─ phpunit.xml.dist
      │
      └─ composer.json

...

OrdnerInhalt
Controller und Routing
/src/{PackageNamespace}/{PackageName}/Lib/Engine.phpBasis-Controller. Siehe Controller und Routing.
/src/{PackageNamespace}/{PackageName}/Lib/*Manager.phpBasis-Controller. Siehe Controller und Routing.
/src/{PackageNamespace}/{PackageName}/Lib/Execute/Auszuführender Code, der statusändernden Character hat. Siehe Controller und Routing
/src/{PackageNamespace}/{PackageName}/Lib/Request/Auszuführender Code, der Inhalte an einen Endpunkt ausgibt. Siehe Controller und Routing
Doctrine
/src/{PackageNamespace}/{PackageName}/Lib/Entity/Doctrine-Entities. Siehe Entitäten um individuelle Properties anreichern 
/src/{PackageNamespace}/{PackageName}/Lib/Repository/Doctrine-Repositories
Crud
/src/{PackageNamespace}/{PackageName}/crud.jsonDefinition von geführten Aktionen zum Löschen/Kopieren. Siehe Crud.
Modelling
/src/{PackageNamespace}/{PackageName}/widget.jsonDefinition vorhandener Datenbanktabellen (Entities) sowie die Beziehung zwischen Datenbanktabellen. Siehe Widget (Component/Widget).
/src/{PackageNamespace}/{PackageName}/structure.jsonStrukturdefinitionen. Siehe Widget (Component/Widget).
/src/{PackageNamespace}/{PackageName}/modelling.jsonModellingdefinition. Siehe Widget (Component/Widget).
PSR-14 / Events
/src/{PackageNamespace}/{PackageName}/Lib/Event/Events, die von \Symfony\Contracts\EventDispatcher\Event ableiten (siehe Event).
/src/{PackageNamespace}/{PackageName}/Lib/Listener/Listener enthalten in brandbox den auszuführenden Code. Sie werden von den Subscribern aufgerufen und ausgeführt. 
/src/{PackageNamespace}/{PackageName}/Lib/Subscriber/Subscriber, die von \Symfony\Component\EventDispatcher\EventSubscriberInterface ableiten.
Allgemeines
/src/{PackageNamespace}/{PackageName}/Lib/Exceptions/Ein zentraler Ort für alle Exceptions des Packages
/src/{PackageNamespace}/{PackageName}/Lib/Migration/Migrationen. Siehe Migrate.
/src/{PackageNamespace}/{PackageName}/js/Javascript-Code der sich auf dieses Package bezieht
Ressourcen
/resources/.phpstorm.meta.php/PhpStorm advanced metadata
/resources/data.conf/XSLT-Datein zur Verwendung bei Ex- und Import-Transformationen. Siehe Transformationen.
/resources/languages/Zwei Dateien, die immer existieren müssen: de.xml und en.xml. Siehe Übersetzungen (i18n).
/resources/js/Javascript-Dateien der App.
/resources/dashboard.jsonEine Datei zur Strukturierung eines Dashboards. Siehe Dashboard.
/resources/dashboard-config.jsonEine Datei zur Erstellung eines Dashboards. Siehe Dashboard.

...

PSR-14 / Events

  • PSR-14 ist ein Standard mit dem Ziel eine gemeinsame Schnittstellen zum Verteilen und Behandeln von Ereignissen zu ermöglichen. Bibliotheken sollen erstellt werden können, die mit vielen Apps / Paketen auf gemeinsame Weise interagieren können
  • Event-Ordner folgen einer Konvention
    • /Event
    • /Listener/{PackageName}/
    • /Subscriber/{PackageName}Subscriber.php 
  • Events und Subscriber dürfen, wie MainController, keine Logik enthalten
  • Listener entsprechen organisatorisch SubControllern und dürfen demnach auch Controller\ControllerRequestAbstract oder Controller\ControllerExecuteAbstract erweitern