- Is victoire/button-widget a Laravel package?
- No. victoire/button-widget is a Symfony bundle (Victoire\WidgetButtonBundle) that provides a single button widget to the Victoire CMS page builder. It has no service provider, no facade, and no Laravel integration surface. Its contract is defined by Victoire's WidgetBundle, EditorBundle, and widget rendering pipeline, none of which exist in a Laravel application. Treat it as a specification source rather than a dependency.
- Can I install victoire/button-widget in Laravel 10, 11, or 12?
- No, not realistically. The bundle targets Symfony 2/3-era conventions and a 2019 PHP baseline, while modern Laravel requires PHP 8.1+ and Symfony 6/7 components. Composer resolution will fail or force you to pin the whole application to an end-of-life stack. Do not attempt a co-install, because a conflict at the root of the dependency graph cascades into the rest of the app.
- What does the victoire/button-widget actually do?
- It supplies a configurable button block to the Victoire CMS: label text, an action or link target, a style variant, an optional icon, and open-in-new-tab behaviour. Editors add the widget through Victoire's page builder, and the CMS renders the button markup via Twig templates. In short, it is an editable button block for a CMS, not a standalone UI library.
- How do I install and configure victoire/button-widget?
- In a Victoire installation you would require the package with Composer, register the bundle in the Symfony kernel, and let Victoire discover the widget through its WidgetBundle conventions. Configuration lives in the CMS widget definition and per-page serialized widget data. There is no Laravel installation path, because there is no service provider or config publish step to run.
- What PHP and Symfony versions does victoire/button-widget require?
- It is built for the Symfony 2/3 era with a 2019 PHP baseline. That predates the PHP 8.1+ and Symfony 6/7 requirements of current Laravel releases. There is no compatible version window with modern Laravel, so there is no overlap to target.
- Is victoire/button-widget maintained and safe for production?
- Maintenance is effectively zero: the last release was 2019-05-02, it has around 2 stars and 0 dependents, and there is no issue triage or security patching. Every transitive dependency it pulls in, including Symfony components and Victoire core, is likewise unpatched. If you adopted it you would own the code, the security posture, and the upgrade treadmill indefinitely, so price that explicitly before deciding.
- How do I render a configurable button in Blade without this package?
- Create a Blade component that accepts label, url, variant, icon, and target props and renders a single anchor or button element with your design system classes. Map variants to a small class lookup array so styling stays consistent across the app. That gives you the same configurable API the widget advertises, with no Symfony or CMS coupling and full test coverage under Laravel.
- Does victoire/button-widget work with Livewire, Nova, or Filament?
- No. Its authoring experience is Victoire's own editor UI, rendered with Twig, and it has no Livewire, Nova, or Filament field integration. If you want an editable button block in a Laravel admin panel, implement a Filament field or a Livewire form component backed by a JSON schema for the stored block config. There is no shim worth writing between the two worlds.
- How do I migrate a Victoire button widget to a Laravel-native component?
- Treat the bundle as a specification source, not a migration target. Document the widget's inputs, validation rules, and rendering semantics during a short spike, then reimplement them as a Blade component for rendering plus a JSON schema for stored block configuration. If a live Victoire site exists, plan a content-export step for the serialized per-page widget data instead of building a runtime bridge.
- Should I fork or vendor victoire/button-widget into my Laravel app?
- Only if code reuse is mandated, and even then expect it to cost more than a rewrite. You would vendor the bundle's PHP into a namespaced internal package and strip the Symfony dependency-injection and Victoire rendering coupling. Given the small surface area of a button widget, reimplementing natively behind your existing block or field abstraction is faster, testable, and free of an unmaintained upstream.