Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Pmk2 Paella Player Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Getting Started

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:

  1. DependencyInjection/Configuration.php — the authoritative list of config keys and defaults. Don't guess config from blogs; read this file.
  2. DependencyInjection/PumukitPaellaPlayerExtension.php — what services and parameters get registered.
  3. Document/PaellaPlayer.php and its Repository/ — the data model you'll query and filter on.
  4. Resources/config/routing.yml + Controller/ — the admin CRUD and any player-rendering action.
  5. 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.

Implementation Patterns

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/.

Gotchas and Tips

  • Abandoned since March 2019. No dependents, one star, no maintenance. Treat it as reference source for the integration pattern, and budget time to patch it for your PHP/Symfony patch level. Pin the exact commit; never float on dev-master.
  • Pumukit 2 is EOL. The bundle inherits Pumukit 2's MongoDB ODM mapping and Symfony 3.4 deprecations. Doctrine Mongo ODM major-version bumps are the most common install breakage.
  • The release tag may lag the branch. If 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.
  • Config keys are undocumented externally. Always read 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.
  • Paella front-end version coupling. The bundle assumes a Paella 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.
  • CORS and mixed content. Paella fetches its config JSON and video streams directly from the browser. The Paella deployment host must be reachable from clients, and HTTPS pages must get HTTPS asset URLs, or you'll get silent failures.
  • Template override ordering. If Paella doesn't show up, the usual cause is that Pumukit's default player template wins because of bundle registration order in AppKernel. Put your override bundle last.
  • Debugging checklist: (1) 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.
  • Extension points: custom Twig override for styling; a custom controller action or console command that generates data.json per multimedia object; repository query scoping if you need per-series player selection beyond tags.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast