teltek/pmk2-stats-ui-bundle
Built for Laravel/PHP projects, Teltek PMK2 Stats UI Bundle provides ready-made UI views and components for presenting PMK2 statistics. It helps you add stats dashboards, reports, and data summaries to your application quickly with minimal frontend setup.
Important framing: this is not a Laravel package. teltek/pmk2-stats-ui-bundle is a Symfony bundle built for PuMuKIT 2 (pmk2), Teltek's Symfony-based video platform. If you are working in a Laravel codebase, there is no supported integration path — there is no service provider, no facade, no config publish. Composer will happily install it into a Laravel project, but nothing will boot. Treat this assessment as "how would I use this if I inherited a PuMuKIT installation."
Minimal steps to get it running:
composer require teltek/pmk2-stats-ui-bundleapp/AppKernel.php (new Teltek\PumukitStatsUIBundle\PumukitStatsUIBundle()) or config/bundles.php on newer Symfony. Check composer.json for the symfony/* constraint and match it.app/config/routing.yml:
pumukit_stats_ui:
resource: "@PumukitStatsUIBundle/Resources/config/routing.xml"
prefix: /admin/stats
bin/console cache:clear) and inspect the routes with bin/console debug:router | grep stats.Where to look first: Resources/config/ (routing, services, the bundle's DI wiring), Resources/views/ (the Twig templates you'll almost certainly override), and Controller/. Those three directories are the entire bundle in practice.
First realistic use case: an admin wants a statistics dashboard showing usage/playback activity for the media library. This bundle supplies the pages; the backend supplies the numbers.
Template-override-first customization. Like all Symfony bundles, this one is designed to be customized by inheritance rather than by forking. Override individual templates under app/Resources/PumukitStatsUIBundle/views/ (or templates/bundles/PumukitStatsUIBundle/ on Symfony 4+). Verify the exact path convention against your Symfony version — this is the single most common source of "my override is being ignored."
Wire it into the admin menu. PuMuKIT's admin has its own menu configuration. The realistic integration is not touching this bundle's controllers at all, but adding a menu entry that points at the stats route, plus the correct role/ACL so only admins see it. Check how other PuMuKIT admin bundles register their menu items and copy that pattern.
Treat the controller as a thin read layer. The pattern this bundle follows is: request comes in with filter parameters (date range, series/category), controller validates and forwards to the stats service from the backend bundle, controller hands an array to Twig, Twig renders charts. If you need a new dimension of stats, add it in the backend service and pass it through — do not put aggregation logic in the template.
Service decoration for behavior changes. If you need different filtering, caching, or export behavior, decorate the stats service in your app's services.yml rather than editing the bundle. This survives composer update.
Routing-level reuse. If you want the stats UI available outside the admin (e.g., a public read-only dashboard), import the same routing resource under a different prefix and add your own firewall rule, rather than duplicating the controllers.
Consistent styling. The templates assume PuMuKIT's admin theme CSS/JS. If your install has customized the admin theme, budget time for the charts to look wrong — this is cosmetic but always comes up.
composer.json will conflict with anything modern. Pin the bundle and your Symfony version together, and be prepared for composer update to break the install.bin/console debug:router first, always.security.yml role hierarchy for the PuMuKIT admin roles.How can I help you explore Laravel packages today?