/** * This is where subclasses declare what storage types they support together with * the initializers for those types. */ public function formalize() { $this->supports(StorageType::OUTBOX(), function (Settings $s) { FeatureSettingsExtensions::enableFeatureByDefault(InMemoryOutboxPersistenceFeature::class, $s); }); }
private function ensureOutboxPersistenceConfigured() { $isConfigured = false; /** @var EnabledPersistence[] $enabledPersistences */ $enabledPersistences = $this->settings->tryGet(KnownSettingsEnum::ENABLED_PERSISTENCES) ?: []; foreach ($enabledPersistences as $enabledPersistence) { $selectedStorageType = $enabledPersistence->getSelectedStorageType(); if (!$selectedStorageType || $selectedStorageType && $selectedStorageType->equals(StorageType::OUTBOX())) { $isConfigured = true; } } if (!$isConfigured) { $this->usePersistence(new InMemoryPersistenceDefinition(), StorageType::OUTBOX()); } }