arturdoruch/flash-message-bundle
FlashBag, Translation, and Symfony’s dependency injection). If the project is not Symfony-based, this bundle is incompatible and requires a rewrite or alternative (e.g., Laravel’s built-in flash messages or a custom solution).session()->flash()), this bundle could be partially adapted for Laravel via a Symfony bridge (e.g., symfony/http-foundation + symfony/translation), but this introduces high technical debt and complexity.FlashBag, Translation) and adapting Twig templates to Blade.FrameworkBundle (v2.8–3.0) → Blocker for Laravel.Translation component) may not align with Laravel’s trans() helper.laravel-notification-channels or custom flash message services.symfony/notification or stof/doctrine-extensions for CRUD messages.| Component | Symfony Fit | Laravel Fit | Workaround Needed? |
|---|---|---|---|
| Flash Messages | ✅ Native | ✅ Native | No |
| Translation | ✅ Native | ✅ Native | Yes (adapt Symfony’s Translation to Laravel’s trans()) |
| Twig Templates | ✅ Native | ❌ No | Convert to Blade or use Symfony’s Twig in Laravel |
| Dependency Injection | ✅ Native | ✅ Native | Yes (wrap Symfony services) |
| CRUD Helpers | ✅ Unique | ❌ No | Reimplement or use Laravel packages |
composer require arturdoruch/flash-message-bundle
// config/bundles.php (Symfony 4+)
return [
// ...
ArturDoruch\FlashMessageBundle\ArturDoruchFlashMessageBundle::class => ['all' => true],
];
classes in config/packages/artur_doruch_flash_message.yaml (if needed).ad_flash_message service in controllers.{{ ad_flash_messages() }} in Twig templates.Option 1: Symfony Bridge (High Effort)
composer require symfony/http-foundation symfony/translation twig/extensions
use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
use Symfony\Component\Translation\TranslatorInterface;
class FlashMessageService {
public function __construct(
private FlashBagInterface $flashBag,
private TranslatorInterface $translator
) {}
public function setSuccess(string $message = null) {
$this->flashBag->set('success', $this->translator->trans($message ?: 'default.id'));
}
// ... other methods
}
AppServiceProvider:
$this->app->singleton(FlashBagInterface::class, function () {
return $this->app->make('session')->getFlashBag();
});
Option 2: Reimplement Core Logic (Medium Effort)
FlashMessage facade:
facade(FlashMessage::class, FlashMessageService::class);
class FlashMessageService {
public function setSuccess(string $message = null) {
session()->flash('success', trans($message ?: 'default.success'));
}
public function addCrudSuccess($entity, $item = null) {
$message = trans('crud.'.$entity.'.success', ['item' => $item]);
session()->flash('success', $message);
}
}
resources/lang/en/crud.php.Option 3: Hybrid Approach (Symfony Microservice)
/api/flash).crudMessages translations separately.How can I help you explore Laravel packages today?