In WordPress werden Plugins erstellt und als Pakete verteilt, die andere WordPress-Benutzer installieren können.
Jedes der Plugins, die ich erstelle, hat bestimmte gemeinsame Elemente in einem Kern-Plugin. Ich habe Probleme mit der Erstellung und Verwaltung der EntitiyManager
unter diesen Plugins zu verwenden.
Ich habe mir zwei Möglichkeiten ausgedacht, wie man das umsetzen kann, und würde gerne ein paar Rückmeldungen hören, bevor ich weitermache:
Option 1: Einzelner, globaler EntityManager
// Example Plugin
// Unique Entities
// Add Unique Entity Paths and REQUIRED Entity Paths from Core Entities to EntityManager
// Example Plugin
// Unique Entities
// Add Unique Entity Paths and REQUIRED Entity Paths from Core Entities to EntityManager
// Core Plugin
// Core Entities
// Contains EntityManager
Das Problem bei dieser Version ist, dass es zwar eine Möglichkeit gibt, Pfade zu einer MetadataDriver
:
$entityManager->getConfig()->getMetadataDriverImpl()->addPaths();
Ich bin mir nicht sicher, ob dies tatsächlich zu einer Aktualisierung der MetadataDriver
innerhalb der config
dieser EntityManager
. Meine Befürchtung ist, dass dies nur zu einer config
die mit den neuen Pfaden aktualisiert wurde, und nicht die EntityManager
Konfiguration.
Ist das wahr?
Es ist zu beachten, dass es keine setConfig
Funktion. Wenn dies der Fall ist, müsste ich die EntityManager
von jedem Plugin, was den Zweck einer zentralisierten EntityManager
.
Option 2: Mehrere EntityManager
// Example Plugin
// Unique Entities
// Create EntityManager with Unique Entity path and path to Core Entities that are required for this plugin.
// Core Plugin
// Core Entities
Das Problem bei dieser Umsetzung ist, dass sie ineffizient erscheint. Ich habe bemerkt, dass es ein Doctrine-Plugin für WordPress gibt, obwohl es Doctrine 1.2.3 ist, und es erlaubt Ihnen, einen zentralen Ort zu haben, wie ich annehmen würde, ist für die Verwaltung von Anwendungen geeignet, die Ressourcen wie die Zentrale Entitäten .
Was halten Sie von der Verwendung der Doktrin in diesem Szenario? Gibt es eine Möglichkeit, die Operationen zu zentralisieren, so dass der ORM über ein zentrales Plugin verwaltet wird, von dem andere abhängen?