Make widget theme overrides easier to merge across packages
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 25
- Forks
- 5
- Avg merge
- 46m
- Merged PRs (30d)
- 1
Description
Problem
Widget themes contributed by packages are merged through the widgets-themes configuration group. By default, nested arrays are replaced rather than recursively merged.
This makes a small application override unexpectedly replace the complete package theme definition. To preserve the package defaults, the application must either:
- add a
RecursiveMergemodifier to the application runner, or - manually load the vendor theme file and merge it with
array_replace_recursive().
This differs from yiisoft/form, where the Bootstrap theme can be loaded and extended directly through ThemePath::BOOTSTRAP5_VERTICAL.
Proposal
Provide a supported helper or configuration mechanism for extending widget themes without requiring application-level merge modifiers or direct loading of vendor configuration files.
For example, widget theme groups could be recursively merged by default, or the package could expose a public theme extension API/path similar to yiisoft/form.
Context
This affects applications customizing the built-in bootstrap5 theme while retaining the package's other widget defaults.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the widgets-themes configuration group and compare the proposed extension behavior with yiisoft/form's ThemePath::BOOTSTRAP5_VERTICAL. Determine which supported mechanism preserves package defaults while allowing application overrides, then verify that a bootstrap5 customization no longer requires an application merge modifier or direct vendor-file loading.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100