Make widget theme overrides easier to merge across packages
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
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.
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.
- Dominant language
- PHP
- Stars
- 25
- Forks
- 5
- Avg merge
- 46m
- Merged PRs (30d)
- 1
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.
More from yiisoft/widget
-
`pipe()` method Openstatus:under discussion
Difficulty 3/5 1-2 days Newbie friendliness 55/100
-
type:docs
Difficulty 2/5 1-3 hours Newbie friendliness 25/100
Similar issues
-
priority: p3
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
googleapis/librarian#7636 ·
-
0. Needs triage bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
nextcloud/fulltextsearch#1011 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
phpstan/phpstan-doctrine#794 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Automattic/static-site-importer#1767 ·