teltek/pmk2-paella-player-bundle
A Symfony bundle for integrating Paella Player into PMK2 applications. It helps embed and configure the Paella video player within PHP/Symfony projects, streamlining setup for rich media playback and presentation experiences.
This is a Pumukit 2.x bundle (pmk2 = Pumukit 2), so it only makes sense inside an existing Pumukit 2 installation on Symfony 3.4-era PHP. If you're on Pumukit 3 / Symfony 5+, stop — this bundle predates that stack and will not install cleanly. Confirm the version and the last-touched branches (master, 2.x) before you composer require teltek/pmk2-paella-player-bundle; if the tagged release is stale against your Pumukit minor, install from the matching branch via a VCS repository entry.
Minimum wiring:
// app/AppKernel.php
new Pumukit\PaellaPlayerBundle\PumukitPaellaPlayerBundle(),
# app/config/routing.yml
pumukit_paella_player:
resource: "@PumukitPaellaPlayerBundle/Resources/config/routing.yml"
prefix: /
Then clear cache, install assets, and look for any new Mongo collections. Nothing else should be required to boot.
Where to look first, in this order:
DependencyInjection/Configuration.php — the authoritative list of config keys and defaults. Don't guess config from blogs; read this file.DependencyInjection/PumukitPaellaPlayerExtension.php — what services and parameters get registered.Document/PaellaPlayer.php and its Repository/ — the data model you'll query and filter on.Resources/config/routing.yml + Controller/ — the admin CRUD and any player-rendering action.Resources/views/ — how it hooks into Pumukit's MultimediaObject player template.First use case: go to admin/paellaplayer (the bundle's admin CRUD), create a PaellaPlayer record pointing at a Paella deployment (player URL + a Paella data.json / resource URL + thumbnail), tag it, and enable it. Then open a multimedia object that carries the matching tag and confirm the Paella player renders instead of Pumukit's default player. That end-to-end smoke test exercises config, routing, Mongo, and template override in one shot.
Player-per-collection with tags. The PaellaPlayer document carries a tags field and an enabled flag; the intended pattern is to define one Paella configuration per content type (lecture capture, slide+video, dual-stream) and use tags on the MultimediaObject to select it. Query the repository by tag rather than hardcoding a single player.
Admin CRUD as configuration store. Rather than editing YAML to add players, editors create/disable players through admin/paellaplayer. Treat that collection as configuration: seed it in fixtures for staging/production so environments match, and version the fixture.
Template override, not service swap. Integration is done at the Twig level — typically by having the bundle's MultimediaObject/player.html.twig (or the app's override of it) choose Paella when the object matches a player. To customize look-and-feel, override the template in your own bundle after this one in AppKernel registration order; don't fork the bundle for styling.
Paella config lives outside the bundle. The bundle points at a Paella Player deployment and a per-video data.json (or resource URL). Generate that data.json server-side from Pumukit tracks if you need dynamic multi-stream sets — that's the natural extension point, and it keeps Paella's front-end config in sync with track data.
Route-based deep linking. If the bundle exposes a player route (check routing.yml), link to it from your own templates rather than embedding an iframe yourself. It keeps URL generation and access control consistent with Pumukit's permission model.
Asset publishing. Run assets:install --symlink and assetic:dump (or the Pumukit equivalent) after install; the bundle's static Paella-facing assets need to land in web/bundles/.
dev-master.composer require resolves an old version that predates your Pumukit minor, switch to a branch alias in repositories — this is the single most common setup failure.DependencyInjection/Configuration.php; guessing pumukit_paella_player.* keys silently does nothing because Symfony ignores unknown nodes only if you haven't enabled strict config — check config.yml for errors on cache warm.data.json/profile shape. A newer Paella build than the bundle was written against will render blank with no server-side error — debug in the browser console and network tab first, not in Symfony logs.AppKernel. Put your override bundle last.app/console debug:config pumukit_paella_player, (2) verify the PaellaPlayer document exists and enabled: true in Mongo, (3) confirm the MultimediaObject has the matching tag, (4) check debug:router for the admin and player routes, (5) inspect the rendered HTML for the expected iframe/div.data.json per multimedia object; repository query scoping if you need per-series player selection beyond tags.How can I help you explore Laravel packages today?