Skip to content

refactor!: move addon config/order from database to filesystem#6528

Merged
gharlan merged 2 commits into
6.xfrom
refactor/addon-config-to-filesystem
May 30, 2026
Merged

refactor!: move addon config/order from database to filesystem#6528
gharlan merged 2 commits into
6.xfrom
refactor/addon-config-to-filesystem

Conversation

@gharlan
Copy link
Copy Markdown
Member

@gharlan gharlan commented May 30, 2026

Store addon install/status and load order in data/core/addons.json instead of the rex_config database table. This decouples addon state from the database, simplifying deployments and paving the way for deeper Composer integration.

Changes

  • Add AddonManager::getAddonConfig() / getAddonOrder() reading from addons.json
  • Add AddonManager::saveAddonsData() with optional config/order params
  • Rename AddonManager::generatePackageOrder() to generateAddonOrder()
  • Remove Core::getPackageConfig() / Core::getPackageOrder() (moved to AddonManager)
  • Remove unused $generatePackageOrder property
  • Add rector rules for the renamed static methods

The on-disk shape is {config, order}: config is persisted addon state (all registered addons, alphabetical), order is the dependency-sorted boot order of the available addons (a derived cache, intentionally kept separate from config).

Breaking changes

Core::getPackageConfig() and Core::getPackageOrder() have been moved to AddonManager::getAddonConfig() and AddonManager::getAddonOrder(). Rector rules are included for the rename.

Store addon install/status and load order in `data/core/addons.json`
instead of the `rex_config` database table. This decouples addon state
from the database, simplifying deployments and paving the way for
deeper Composer integration.

- Add `AddonManager::getAddonConfig()` / `getAddonOrder()` reading from `addons.json`
- Add `AddonManager::saveAddonsData()` with optional `config`/`order` params
- Rename `AddonManager::generatePackageOrder()` to `generateAddonOrder()`
- Remove `Core::getPackageConfig()` / `Core::getPackageOrder()` (moved to AddonManager)
- Remove unused `$generatePackageOrder` property
- Add rector rules for the renamed static methods

BREAKING CHANGE: `Core::getPackageConfig()` and `Core::getPackageOrder()`
have been moved to `AddonManager::getAddonConfig()` and
`AddonManager::getAddonOrder()`.
@gharlan gharlan added this to the REDAXO 6.0 milestone May 30, 2026
@gharlan gharlan merged commit e34f641 into 6.x May 30, 2026
16 checks passed
@gharlan gharlan deleted the refactor/addon-config-to-filesystem branch May 30, 2026 10:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

2 participants