friendsofvictoire/socialpage-widget
Adds a configurable social page widget to Laravel apps, letting you embed and display feeds or page content from social platforms via a simple Blade component and publishable config. Lightweight, framework-friendly, and easy to drop into any layout.
This is still a Symfony bundle, not a Laravel package. It provides a single Victoire DCMS widget that renders a "social page" block (a Facebook-page-style embed) inside Victoire's page builder. If you are a Laravel developer evaluating it, treat it as reference code for how a CMS widget is packaged — you will not be able to composer require it into an app/.
What changed in 2.0.0: the version number moved to a major release, but the release notes are empty. That is the single most important fact to internalize. A major bump with no changelog means you must not assume anything: not the Symfony constraint, not the template markup, not the widget contract, not even that it is still a Victoire widget bundle. Read composer.json and the diff before you plan around it. It could be a Symfony 4+/5 port, a cleanup sweep, a namespace rename, or a tagged-but-abandoned commit. The previous assessment's assumption of "Symfony 2.8/3.x-era APIs" is now unverified rather than true.
Minimal steps (Symfony/Victoire context):
composer.json on the 2.0.0 tag first. Check the PHP and Symfony constraints and the Victoire widget-bundle dependency version — this tells you in thirty seconds whether the release is a modernized port or a cosmetic bump.composer require friendsofvictoire/socialpage-widget:^2.0 (or add it as a path/VCS repository if Packagist metadata lags the tag).AppKernel::registerBundles() (or bundles.php on a ported app).cache:clear, and assets:install if the bundle ships Resources/public.Where to look first:
composer.json — the diff against the previous tag is the only changelog you have. Start here.Widget/ — getName(), getCategory(), configureForm(), and the template it renders. If 2.0.0 changed the form fields, this is where you will see it.Resources/views/ — the Twig template. The embed markup is the piece most likely to have (or not have) been refreshed, and the piece you will almost certainly override.DependencyInjection/ — service wiring for the widget; skim once to check whether the service id or tag changed, since that breaks registration silently.First use case: place the widget in a widget zone, point it at a social page URL, fill whatever options the form exposes, save, and verify the front-end render. Do that end-to-end pass before reading any more code — it tells you in ten minutes whether 2.0.0 modernized the embed or just bumped a version, which is the only question that matters for adoption.
Widget configuration is the primary workflow. Victoire widgets are configured through the page editor, not YAML. Place widget → fill the form → save → preview. The fields defined in configureForm() are the only knobs unless you fork. Re-check that form after 2.0.0: if fields were renamed, existing page data may not hydrate into the new form, so audit any pages already using the widget before upgrading in place.
Pin the version deliberately. With an undocumented major release, ^1.0 and ^2.0 are meaningfully different bets. Pin an exact version in composer.json, upgrade in a branch, and diff the rendered output of one known page before and after. Do not let a composer update decide this for you.
Override the template rather than editing vendor code. The standard Symfony/Victoire override path lets you replace the embed markup without touching the package. This remains the pattern you will live in regardless of what 2.0.0 changed, because social embed markup rots on a schedule set by Facebook, not by this repo.
Use it as a reusable block, not a one-off. Define a dedicated widget zone (footer, sidebar, "contact" column) and let editors drop the social widget there on every page template. One place to override, one place to debug.
Pair with Victoire's i18n and zone features. On multilingual sites, configure per locale and confirm the form stores locale-aware values; if it does not, duplicate the widget per locale zone rather than fighting the form.
Extension points, in order of preference:
DependencyInjection/ before wiring this.If you are porting the concept to Laravel: the architecture maps cleanly. A Blade partial replaces the Twig template; a settings model or JSON column replaces the widget form; a view composer replaces the widget service. Use a current oEmbed or social-embed library for the markup rather than copying the bundle's template — that is the part most likely to have rotted, and it is the only part worth carrying over.
Resources/public, run assets:install (and assetic:dump on older stacks), or the block renders unstyled with no error.How can I help you explore Laravel packages today?