Skip to content

[8.0] Add extensions, VoterInterface, breadcrumbs, bundle config#5

Merged
wtorsi merged 4 commits intomainfrom
8.0
Mar 1, 2026
Merged

[8.0] Add extensions, VoterInterface, breadcrumbs, bundle config#5
wtorsi merged 4 commits intomainfrom
8.0

Conversation

@baldrys-ed
Copy link
Contributor

@baldrys-ed baldrys-ed commented Feb 27, 2026

Summary

  • Add VoterInterface abstraction and refactor Matcher to decouple from concrete RouteVoter; autoconfigure custom voters via chamber_orchestra_menu.matcher.voter tag
  • Add build-time IconExtension and DividerExtension for icon/divider support
  • Add runtime VisibilityExtension (bool/Closure), CounterExtension (named counters), and TranslationExtension (label translation via TranslatorInterface, auto-disabled when unavailable)
  • Add Item::setLabel() for runtime label mutation
  • Add bundle Configuration with default_template, translation.domain, and cache.namespace settings
  • Add menu_get() and menu_breadcrumbs() Twig functions; make render_menu() template argument optional with default_template fallback
  • Move autoconfiguration from services.php instanceof blocks to registerForAutoconfiguration() in the bundle class
  • Fix native_function_invocation cs-fixer rule (@all@internal) to allow Symfony tagged_iterator
  • Update README with all new features, configuration reference, and extension tables

Test plan

  • All 170 PHPUnit tests pass
  • PHPStan level max — no errors
  • PHP-CS-Fixer — no violations

🤖 Generated with Claude Code

dev and others added 3 commits February 27, 2026 15:07
…lash

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…agged_iterator

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… extensions, bundle config, breadcrumbs, menu_get

- Add VoterInterface and refactor Matcher to use it instead of concrete RouteVoter
- Add Item::setLabel() for runtime label mutation
- Add build-time IconExtension and DividerExtension
- Add runtime VisibilityExtension and CounterExtension
- Add runtime TranslationExtension with auto-disable when no translator available
- Add bundle Configuration (default_template, translation.domain, cache.namespace)
- Add menu_get() and menu_breadcrumbs() Twig functions
- Make render_menu() template argument optional with default_template fallback
- Add symfony/translation-contracts dependency
- Update README with all new features

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wtorsi wtorsi changed the title 8.0 [8.0] Add extensions, VoterInterface, breadcrumbs, bundle config Mar 1, 2026
…params

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wtorsi wtorsi merged commit 1aa71d2 into main Mar 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants