+
+## Table of Contents
+
+- [About PHPFlasher](#about-phpflasher)
+- [Features](#features)
+- [Supported Versions](#supported-versions)
+- [Installation](#installation)
+ - [Core Package](#core-package)
+ - [Adapters](#adapters)
+- [Quick Start](#quick-start)
+- [Usage Examples](#usage-examples)
+- [Adapters Overview](#adapters-overview)
+- [Official Documentation](#official-documentation)
+- [Contributors and Sponsors](#contributors-and-sponsors)
+- [Contact](#contact)
+- [License](#license)
+
## About PHPFlasher
-PHPFlasher is a powerful and easy-to-use package that allows you to quickly and easily add flash messages to your Laravel or Symfony projects.
-Whether you need to alert users of a successful form submission, an error, or any other important information, flash messages are a simple and effective solution for providing feedback to your users.
+PHPFlasher is an open-source tool that helps you add flash messages to your web applications. Flash messages are short notifications that provide feedback to users after they perform actions, such as submitting a form or encountering an error. These messages enhance the user experience by informing users about the outcomes of their actions.
-With PHPFlasher, you can easily record and store messages within the session, making it simple to retrieve and display them on the current or next page.
-This improves user engagement and enhances the overall user experience on your website or application.
+PHPFlasher simplifies the process of integrating flash messages into **Laravel** and **Symfony** projects. It uses sessions to store messages, allowing you to set a message on one page and display it on another without complex setup.
-Whether you're a beginner or an experienced developer, PHPFlasher's intuitive and straightforward design makes it easy to integrate into your projects.
-So, if you're looking for a reliable, flexible and easy to use flash messages solution, PHPFlasher is the perfect choice.
+## Features
+- **Multiple Adapters**: Supports Laravel, Symfony, Toastr, Noty, SweetAlert, and more.
+- **Flexible Configuration**: Customize the appearance and behavior of flash messages.
+- **Extensible**: Easily integrate with various frontend libraries and frameworks.
+- **Intuitive API**: Simple functions to create and manage flash messages.
+
+## Supported Versions
+
+| PHPFlasher Version | PHP Version | Symfony Version | Laravel Version |
+|--------------------|-------------|-----------------|-----------------|
+| **v2.x** | ≥ 8.2 | ≥ 7.2 | ≥ 11 |
+| **v1.x** | ≥ 5.3 | ≥ 2.0 | ≥ 4.0 |
+
+> **Note:** If your project uses PHP, Symfony, or Laravel versions below the requirements for PHPFlasher v2.x, please use [PHPFlasher v1.x](https://github.com/php-flasher/php-flasher/tree/1.x).
+
+## Installation
+
+### Core Package
+
+Install the core PHPFlasher package via Composer:
+
+- **For Laravel:**
+
+ ```bash
+ composer require php-flasher/flasher-laravel
+ ```
+
+ After installation, set up the necessary assets:
+
+ ```shell
+ php artisan flasher:install
+ ```
+
+ > **Note:** PHPFlasher automatically injects the necessary JavaScript and CSS assets into your Blade templates. No additional steps are required for asset injection.
+
+- **For Symfony:**
+
+ ```bash
+ composer require php-flasher/flasher-symfony
+ ```
+
+ After installation, set up the necessary assets:
+
+ ```shell
+ php bin/console flasher:install
+ ```
+
+ > **Note:** PHPFlasher automatically injects the necessary JavaScript and CSS assets into your Twig templates. No additional steps are required for asset injection.
+
+### Adapters
+
+PHPFlasher provides various adapters for different frameworks and notification libraries. Below is an overview of available adapters:
+
+#### Toastr
+
+- [flasher-toastr](https://github.com/php-flasher/flasher-toastr) - Core Toastr Adapter
+- [flasher-toastr-laravel](https://github.com/php-flasher/flasher-toastr-laravel) - Laravel Adapter
+- [flasher-toastr-symfony](https://github.com/php-flasher/flasher-toastr-symfony) - Symfony Adapter
+
+#### Noty
+
+- [flasher-noty](https://github.com/php-flasher/flasher-noty) - Core Noty Adapter
+- [flasher-noty-laravel](https://github.com/php-flasher/flasher-noty-laravel) - Laravel Adapter
+- [flasher-noty-symfony](https://github.com/php-flasher/flasher-noty-symfony) - Symfony Adapter
+
+#### Notyf
+
+- [flasher-notyf](https://github.com/php-flasher/flasher-notyf) - Core Notyf Adapter
+- [flasher-notyf-laravel](https://github.com/php-flasher/flasher-notyf-laravel) - Laravel Adapter
+- [flasher-notyf-symfony](https://github.com/php-flasher/flasher-notyf-symfony) - Symfony Adapter
+
+#### SweetAlert
+
+- [flasher-sweetalert](https://github.com/php-flasher/flasher-sweetalert) - Core SweetAlert Adapter
+- [flasher-sweetalert-laravel](https://github.com/php-flasher/flasher-sweetalert-laravel) - Laravel Adapter
+- [flasher-sweetalert-symfony](https://github.com/php-flasher/flasher-sweetalert-symfony) - Symfony Adapter
+
+For detailed installation and usage instructions for each adapter, refer to their respective [README.md](https://github.com/php-flasher/flasher-toastr).
+
+## Quick Start
+
+To display a notification message, you can either use the `flash()` helper function or obtain an instance of `flasher` from the service container. Then, before returning a view or redirecting, call the desired method (`success()`, `error()`, etc.) and pass in the message to be displayed.
+
+### Using the `flash()` Helper
+
+```php
+class BookController
+{
+ public function saveBook()
+ {
+ // Your logic here
+
+ flash('Your changes have been saved!');
+
+ return redirect()->back();
+ }
+}
+```
+
+### Using the `flasher` Service
+
+```php
+use Flasher\Prime\FlasherInterface;
+
+class AnotherController
+{
+ /**
+ * If you prefer to use dependency injection
+ */
+ public function register(FlasherInterface $flasher)
+ {
+ // Your logic here
+
+ $flasher->success('Your changes have been saved!');
+
+ // ... redirect or render the view
+ }
+
+ public function update()
+ {
+ // Your logic here
+
+ app('flasher')->error('An error occurred while updating.'); // ony for laravel
+
+ return redirect()->back();
+ }
+}
+```
+
+## Usage Examples
+
+### Success Message
+
+```php
+flash()->success('Operation completed successfully!');
+```
+
+### Error Message
+
+```php
+flash()->error('An error occurred.');
+```
+
+### Info Message
+
+```php
+flash()->info('This is an informational message.');
+```
+
+### Warning Message
+
+```php
+flash()->warning('This is a warning message.');
+```
+
+### Passing Options
+
+```php
+flash()->success('Custom message with options.', ['timeout' => 3000, 'position' => 'bottom-left']);
+```
+
+## Adapters Overview
+
+PHPFlasher supports various adapters to integrate seamlessly with different frameworks and frontend libraries. Below is an overview of available adapters:
+
+| Adapter Repository | Description |
+|-----------------------------------------------------------------------------------------|--------------------------------|
+| [flasher-laravel](https://github.com/php-flasher/flasher-laravel) | Laravel framework adapter |
+| [flasher-symfony](https://github.com/php-flasher/flasher-symfony) | Symfony framework adapter |
+| [flasher-toastr-laravel](https://github.com/php-flasher/flasher-toastr-laravel) | Toastr adapter for Laravel |
+| [flasher-toastr-symfony](https://github.com/php-flasher/flasher-toastr-symfony) | Toastr adapter for Symfony |
+| [flasher-noty-laravel](https://github.com/php-flasher/flasher-noty-laravel) | Noty adapter for Laravel |
+| [flasher-noty-symfony](https://github.com/php-flasher/flasher-noty-symfony) | Noty adapter for Symfony |
+| [flasher-notyf-laravel](https://github.com/php-flasher/flasher-notyf-laravel) | Notyf adapter for Laravel |
+| [flasher-notyf-symfony](https://github.com/php-flasher/flasher-notyf-symfony) | Notyf adapter for Symfony |
+| [flasher-sweetalert-laravel](https://github.com/php-flasher/flasher-sweetalert-laravel) | SweetAlert adapter for Laravel |
+| [flasher-sweetalert-symfony](https://github.com/php-flasher/flasher-sweetalert-symfony) | SweetAlert adapter for Symfony |
+
+> **Note:** Each adapter has its own repository. For detailed installation and usage instructions, please refer to the [Official Documentation](https://php-flasher.io).
## Official Documentation
-Documentation for PHPFlasher can be found on the [https://php-flasher.io](https://php-flasher.io).
+Comprehensive documentation for PHPFlasher is available at [https://php-flasher.io](https://php-flasher.io). Here you will find detailed guides, API references, and advanced usage examples to help you get the most out of PHPFlasher.
## Contributors and sponsors