os2display/admin-bundle
The OS2display Admin Bundle provides the administrative interface for managing digital signage content, screens, channels, and templates. Built for Symfony/PHP, it gives editors and administrators the screens and tools needed to organize and publish display content.
os2display/admin-bundle is the administration UI for the os2display digital-signage platform. Release 2.2.1 merges PR #25, adding screen administration — CRUD screens for managing the display endpoints that show content. If you are coming from Laravel, read the next section before running composer require: this is a Symfony bundle, not a Laravel package.
First places to look after pulling 2.2.1:
composer.json — confirm the PHP/Symfony version constraints and the bundle's dependencies.src/Resources/config/ — routing, services, and DI wiring. This is where the new screen-admin routes and services land.src/Resources/views/ — Twig templates for the admin screens, including the new screen list/form.Minimal path to a working screen admin (inside a Symfony host application):
composer require os2display/admin-bundle:2.2.1
// config/bundles.php
return [
// ...
Os2Display\AdminBundle\Os2DisplayAdminBundle::class => ['all' => true],
];
Then import the bundle routing, ensure the Doctrine connection and any required migrations are applied, create an admin user, and open the admin route (commonly /admin). The first end-to-end use case is: log in → open Screens → create a screen → assign it to a channel/playlist → verify it appears in the screen list. That exercises the new feature and the auth/permission layer at once.
Treat the screen admin as the reference implementation. The bundled screen list + form + persist flow is the template for any custom admin resource you add. Copy the structure (Controller → FormType → Entity → Twig template → route entry) rather than inventing a new one; it keeps you compatible with upstream changes in later 2.x releases.
Integrating with a Laravel application. Do not try to mount this bundle inside Laravel. The realistic patterns are:
Screen lifecycle workflow. Model screens as long-lived registered devices. The admin CRUD covers create/edit/delete; the day-to-day workflow is registration → assignment to a channel → content publishing → status monitoring. Keep the screen identifier stable and referenced from your own system if you need cross-system reporting.
Extending without forking. Prefer overriding Twig templates via the standard bundle override path and decorating services over patching vendor code. If you need extra fields on the screen form, extend the form type through a form extension rather than editing the bundle's form class.
Version pinning. Pin to 2.2.* and review the changelog on each bump. Because 2.2.1 adds a feature in a patch release, treat patch bumps as potentially schema- or route-affecting and run them through staging first.
config/admin.php, no Artisan commands, no Blade, no Eloquent. It uses Symfony DI, Twig, Doctrine, and Symfony routing/security. Any Laravel-side integration is at the HTTP/SSO boundary, not in-process.doctrine:schema:validate / migrations and clear the Symfony cache after upgrading.<script> tags first when the screen list looks broken.bin/console cache:clear). Stale container caches produce confusing "service not found" or "route not found" errors on new features.How can I help you explore Laravel packages today?