silvestra/notification-bundle
A Symfony bundle for adding a flexible notification system to your app. Create, send, store, and manage user notifications with configurable channels and templates, plus a simple API for retrieving and marking notifications as read.
Before writing any code, confirm what this package actually is: silvestra/notification-bundle is a subtree split of a Symfony bundle, not a Laravel package. The [READ-ONLY] marker means the GitHub repo is a generated mirror — commits land in the parent Silvestra/Silvestra monorepo, and issues/PRs opened against the split are effectively ignored.
Your first three lookups, in order:
composer.json — check the require block for symfony/* and sibling silvestra/* constraints, and the type field (expect symfony-bundle). If it pins Symfony 2.x/3.x, stop here: it will not boot on a modern Laravel app, and probably not on a current Symfony app either.Entity/ and Repository/ — this is where the real value lives. Expect a Doctrine entity (something like a Notification with recipient, subject/body, read flag, timestamps) plus a repository with query methods. This is the part worth reading even if you never install it.Silvestra/Silvestra repo — for tests, fixtures, and the actual intended usage. The split repo alone gives you no runnable example.Minimal realistic attempt: don't composer require this into a Laravel project. There is no service provider, no facade, no publishable config, and the Doctrine mappings won't line up with Eloquent. If you want to evaluate it, clone it into a scratch Symfony app (matching the symfony/* constraints) or simply read the entity definition.
First use case that actually maps to Laravel: the in-app notification list — recipient, message, read/unread, created-at — is the exact problem Laravel's built-in Illuminate\Notifications already solves via the database channel and the Notifiable trait. Treat this bundle as a data-model reference, not a dependency.
If you are (unusually) in a Symfony/Silvestra app:
AppKernel/bundles.php, let Doctrine auto-map the entity, and use the bundle's repository to fetch unread notifications per user.Resources/views/; check there for the expected shape of the payload before building your own.DependencyInjection/Configuration.php and consumed via YAML under config/packages/. Read that file to learn the extension alias.The pattern a Laravel developer should actually adopt:
notifications table: id, notifiable_type/notifiable_id or a plain user_id, type, data/body, read_at, timestamps).Notification::where('user_id', $id)->whereNull('read_at')->latest()->get(), or a scopeUnread on the model.Illuminate\Notifications; the Silvestra bundle's equivalents (if any) predate that API and won't interoperate.Workflow tip: when reading the split repo, diff against the parent monorepo's src/Silvestra/NotificationBundle path. The split can lag the monorepo, so the "latest" code may live upstream.
Silvestra/Silvestra, not here. Budget for that if you plan to depend on it.Symfony\Component\HttpKernel\Bundle\Bundle, service definitions in XML/YAML, and Doctrine annotations. None of that is Laravel-compatible, and modern PHP (8.2+) will likely trip deprecations or hard errors.Silvestra\NotificationBundle\.... This is not Illuminate\Notifications — no Notifiable trait, no Notification::send(), no channel abstraction, no queue integration. Don't assume API parity from the word "notification."created_at/updated_at, soft deletes) differ. Expect to rewrite the mapping by hand.config/packages/*.yaml under the bundle's extension alias; there is no php artisan vendor:publish equivalent and no config/notification.php to override. Read Configuration.php to enumerate the knobs.Log:: facade. If you somehow get it running under Symfony, you're on Monolog and the Symfony profiler.Bottom line: treat silvestra/notification-bundle as a readable reference for notification modelling in a Symfony CMF, not as an installable dependency for a Laravel application. The day-to-day leverage is zero unless you're maintaining a Silvestra install — in which case, work from the parent monorepo and pin your Symfony version deliberately.
How can I help you explore Laravel packages today?