ornicar/message-bundle
ornicar/message-bundle is a lightweight Symfony bundle for adding private user-to-user messaging to an application. It provides Doctrine-backed message and conversation entities plus integration points for inbox-style communication, making it easy to wire basic messaging into existing Symfony projec...
Thread, Message, Participant (with lastSeenAt), and per-user MessageMetadata for read/deleted state. That's a copyable schema concept before deleting the dependency.Important framing correction for stakeholders: this is a Symfony bundle, not a Laravel package, and it is explicitly discontinued — the author redirects to FriendsOfSymfony/FOSMessageBundle. For a Laravel codebase it would have to be re-implemented regardless, at which point you are writing the feature, not adopting a package. The supplied 4.16 "opportunity" score should be read as the problem space is under-served by good packages, not as a signal that this package is viable.
Adopt essentially never for new work. The qualifying conditions are narrow and mostly archaeological:
require it.Look elsewhere — or build — when any of these hold:
composer.json.For executives (one paragraph): We evaluated an open-source component for in-app messaging. It's no longer maintained — the author has discontinued it and redirects users elsewhere — it's built for a different framework than ours, and it has essentially no adoption. We do not recommend taking a dependency on it. The useful output of the evaluation is the underlying design: a three-part model of conversations, messages, and participants that our team can replicate in a few engineering days. Recommendation: build a minimal messaging slice ourselves, or adopt an actively maintained package if one passes a maintenance check — and record this as a considered-and-rejected option.
For engineering (the actual ask):
composer.json. Pull the four entities' relationships into app/Models as a sketch, then discard the source.MessageComposer, ThreadRepository) so controllers never depend on third-party namespaces. Use domain events (MessageSent, ThreadCreated) so notifications, mail, and auditing subscribe without touching message code.How can I help you explore Laravel packages today?