If you find PHPFlasher useful, please consider giving it a ⭐ star on GitHub 😊. If you spot any typos or have suggestions, feel free to contribute to the documentation 📝. Your feedback helps keep the project up-to-date and well-maintained. Thank you
Laravel
composer require php-flasher/flasher-noty-laravel
After installation, you need to run another command to set up the necessary assets for PHPFlasher:
php artisan flasher:install
Note: The configuration settings below are the default ones. You only need to change them if you want to customize the default behavior.
<?php // config/flasher.php
return [
'plugins' => [
'noty' => [
'scripts' => [
'/vendor/flasher/noty.min.js',
'/vendor/flasher/flasher-noty.min.js'
],
'styles' => [
'/vendor/flasher/noty.css',
'/vendor/flasher/mint.css'
],
'options' => [
// Optional: Add global options here
// 'layout' => 'topRight'
],
],
],
];
Symfony
composer require php-flasher/flasher-noty-symfony
After installation, you need to run another command to set up the necessary assets for PHPFlasher:
php bin/console flasher:install
Note: The configuration settings below are the default ones. You only need to change them if you want to customize the default behavior.
# config/packages/flasher.yaml
flasher:
plugins:
noty:
scripts:
- '/vendor/flasher/noty.min.js'
- '/vendor/flasher/flasher-noty.min.js'
styles:
- '/vendor/flasher/noty.css'
- '/vendor/flasher/mint.css'
options:
# Optional: Add global options here
# layout: topRight
Usage
The methods described in the Usage section can also be used with the
notyf
adapter.
To display a notification message, you can either use the noty()
helper method or obtain an instance of noty
from the service container.
Then, before returning a view or redirecting, call the success()
method and pass in the desired message to be displayed.
#/ noty
use Flasher\Noty\Prime\NotyInterface;
class BookController
{
public function saveBook()
{
noty()->success('Your account has been re-activated.');
// or simply
noty('Your account has been re-activated.');
}
/**
* if you prefer to use dependency injection
*/
public function register(NotyInterface $noty)
{
// ...
$noty->success('Your account has been re-activated.');
// ... redirect or render the view
}
}
#/ usage info
noty()->info('This may take a while. Do not refresh the page.');
#/ usage warning
noty()->warning('Your account may not have been reinstated.');
#/ usage error
noty()->error('There was a problem setting your password.');
For more information on Noty options and usage, please refer to the original documentation at https://ned.im/noty/
The methods described in the Usage section can also be used with the
notyf
adapter.
top
, topLeft
, topCenter
, topRight
, center
, centerLeft
, centerRight
, bottom
, bottomLeft
, bottomCenter
, bottomRight
ClassName generator uses this value → noty_layout__${layout}
noty()->layout(string $layout);
#/ noty layout
noty()
->layout('topCenter')
->error('There was an issue receiving your donation.');
Possible values: relax
, mint
, metroui
, light
, sunset
, nest
.
ClassName generator uses this value → noty_theme__${theme}
noty()->theme(string $theme);
Default Theme: mint
Examples:
#/ noty theme mint
noty()
->theme('mint')
->success('Your account has been re-activated.');
noty()
->theme('mint')
->error('An error occurred.');
noty()
->theme('mint')
->warning('Your account may not have been restored.');
noty()
->theme('mint')
->info('Heads up: This may take a while. Be patient.');
#/ noty theme relax
// don't the load the theme css file: https://github.com/needim/noty/blob/master/lib/themes/relax.css
noty()
->theme('relax')
->success('Your account has been de-registered.');
noty()
->theme('relax')
->error('There was a problem re-verifying your account.');
noty()
->theme('relax')
->warning('Your email may not have been verified.');
noty()
->theme('relax')
->info('Your subscription has been cancelled and a confirmation email has been sent.');
#/ noty theme metroui
// Theme: https://github.com/needim/noty/blob/master/lib/themes/metroui.css
noty()
->theme('metroui')
->success('Your subscription has been activated.');
noty()
->theme('metroui')
->error('There was a problem sending your message.');
noty()
->theme('metroui')
->warning('Your account may not have been re-verified.');
noty()
->theme('metroui')
->info('Your contact has been removed and a confirmation email has been sent.');
#/ noty theme light
// Theme: https://github.com/needim/noty/blob/master/lib/themes/light.css
noty()
->theme('light')
->success('Your donation has been received.');
noty()
->theme('light')
->error('There was an issue re-activating your account.');
noty()
->theme('light')
->warning('Your password may not have been set.');
noty()
->theme('light')
->info('Your product has been shipped and a tracking number has been sent to your email.');
#/ noty theme sunset
// Theme: https://github.com/needim/noty/blob/master/lib/themes/sunset.css
noty()
->theme('sunset')
->success('Your order has been shipped.');
noty()
->theme('sunset')
->error('There was a problem setting your password.');
noty()
->theme('sunset')
->warning('Your subscription may not have been activated.');
noty()
->theme('sunset')
->info('Your account has been linked and a confirmation email has been sent.');
false
, 1000
, 3000
, 3500
, etc. Delay for closing event in milliseconds (ms). Set false
for sticky
notifications.
noty()->timeout(int|bool $timeout)
#/ noty timeout
noty()
->timeout(2000) // 2 seconds
->error('There was a problem posting your review.');
true
, false
- Displays a progress bar if timeout is not false.
noty()->progressBar(bool $progressBar = false)
#/ noty progressBar
noty()
->progressBar(false)
->info('Your review has been posted and is being reviewed.');
click
, button
Default click
noty()->closeWith(string|array $closeWith)
#/ noty closeWith
noty()
->closeWith(['click', 'button'])
->error('Something went wrong.');
If string
, assumed to be CSS class name.
If null
, no animation at all.
If function
, runs the function. (v3.0.1+)
You can use animate.css
class names or your custom css animations as well.
noty()->animation(string $animation, string $effect)
#/ noty animation
noty()
->animation(null)
->warning('Your form may not have been submitted.');
sources
: Array of audio sources e.g ‘some.wav’
volume
: nteger value between 0-1 e.g 0.5
conditions
: There are two conditions for now: ‘docVisible’ & ‘docHidden’. You can use one of them or both.
noty()->sounds(string $option, mixed $value)
#/ noty sounds
noty()
->sounds('sources', ['/static/sounds/notification.wav'])
->sounds('volume', 0.3)
->sounds('conditions', ['docVisible', 'docHidden'])
->error('There was a problem registering your device.');
There are two conditions for now: docVisible
& docHidden
. You can use one of them or both.
noty()->docTitle(string $option, mixed $docTitle)
#/ noty docTitle
noty()
->docTitle('conditions', ['docVisible', 'docHidden'])
->info('Your report has been generated and a confirmation email has been sent.');
noty()->modal(bool $modal = true)
#/ noty modal
noty()
->modal(true)
->success('Your question has been submitted.');
You can use this id with querySelectors.
Generated automatically if false.
noty()->id(bool|string $id)
#/ noty id
noty()
->id(false)
->warning('Your account may not have been suspended.');
DOM insert method depends on this parameter.
If false
uses append, if true
uses prepend.
noty()->force(bool $force = true)
#/ noty force
noty()
->force(false)
->warning('Your account may not have been restored.');
NEW Named queue system. Details are here.
noty()->queue(string $queue)
Default: global
#/ noty queue
noty()
->queue('global')
->info('Your information has been saved and a confirmation email has been sent.');
If true
closes all visible
notifications and shows itself.
If string(queueName)
closes all visible
notification on this queue and shows itself.
noty()->killer(bool|string $killer)
#/ noty killer
noty()
->killer(true)
->warning('Your donation may not have been received.');
Custom container selector string. Like .my-custom-container
.
Layout parameter will be ignored.
noty()->container(bool|string $container)
#/ noty container
noty()
->container(false)
->success('Your account has been restored.');
If true
Noty uses PageVisibility API to handle timeout.
To ensure that users do not miss their notifications.
noty()->visibilityControl(bool $visibilityControl)
#/ noty visibilityControl
noty()
->visibilityControl(true)
->success('Your account has been verified.');