Уведомления на сайте PHP + Noty.js V3
Про использование библиотеки Noty.js я писал здесь . На самом деле мне она очень понравилась своей простотой и практичностью.
В связи с этим, я решил немного кастомизировать её под свои нужды. Я собираюсь использовать её в php проектах и никакого лишнего кода JavaScript мне там не нужно.
Подключение к проекту Noty.js
я здесь не буду описывать, по ссылке выше всё уже расписано.
Класс для работы с библиотекой Noty.js
Мы не будем использовать всё API библиотеки. Возьмём только основные настройки, тем самым обеспечим базовую работоспособность уведомлений. Если нужны более глубокие настройки, никто не мешает дописать нужный функционал 😉
<?
/**
* https://ned.im/noty/#/
* https://github.com/needim/noty
* https://daneden.github.io/animate.css/
* A Dependency-free notification library
* Class Noty
*/
class Noty
{
/**
* @param $type
* @param $text
* @param $timeout
* @param $layout
*/
public static function run($type, $text, $timeout, $layout)
{
echo '
<script>
new Noty({
type: '."\"$type\"".',
text: '."\"$text\"".',
timeout: '."\"$timeout\"".',
layout: '."\"$layout\"".',
theme: "semanticui",
animation: {
open: "animated bounceInRight",
close: "animated bounceOutRight"
}
}).show();
</script>';
}
}
Использовать класс можно так, например:
// Простой пример: принимаем get-параметр 'name'
// http://site.com/?name=John
$name = $_GET['name'] ?? null;
if(!$name):
/**
* Если значение аргумента не передавать,
* то сработает значение по умолчанию
* https://ned.im/noty/#/options
*/
Noty::run('','Name does not exist', false, 'bottomRight');
else:
Noty::run('success', 'Hello, '.$name, 3000, 'topRight');
endif;
// Или где-то в контроллере
public function actionSignUp()
{
/* @var $user User */
try {
$user->signup();
Noty::run('success','User registration was successful!', 3000, 'topRight');
} catch (Exception $e) {
Noty::run('error',$e->getMessage(), 3000, 'topRight');
}
}
Получился простой, но в тоже время практичный класс для уведомлений, которые теперь можно спокойно вызывать из любого места приложения на PHP .
Предыдущая запись
PHP: Рекурсия и её использование в примерахСледующая запись
Guzzle - PHP HTTP клиент