1. Go to this page and download the library: Download arhone/trigger library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
arhone / trigger example snippets
use arhone\commutation\trigger\Trigger;
// Добавляем обработчик на определённое событие
$trigger->add('событие', function () {
return 'ответ';
});
// Запускаем событие
echo $trigger->run('событие'); // ответ
// триггером для запуска обработчика послужил запуск события $trigger->run('событие')
$trigger->add('test', function ($match, $data) use ($trigger) {
$trigger->option('two', [
'status' => false // Второй обработчик не будет запущен
]);
return 'Первый';
}, [
'name' => 'one',
]);
$trigger->add('test', function ($match, $data) {
return 'Второй';
}, [
'name' => 'two',
]);
echo $trigger->run('test'); // Первый
$trigger->add('start', function ($match, $data) {
return $data . ' раз';
});
$trigger->add('start', function ($match, $data) {
return $data . ' два';
});
$trigger->add('start', function ($match, $data) {
return $data . ' три';
}, [
'status' => false
]);
echo $trigger->run('start'); // раз два
$trigger->add('(http[s]?):get:/home.html', function () {
return 'hello word';
});
// Пользователь зашёл по HTTP типа GET на страницу /home.html
echo $trigger->run('http:get:/home.html');
$trigger->add('console:cache-clear', function () {
return 'Кэш очищен';
});
echo $trigger->run('console:cache-clear');
// Проверяем если пользователь не авторизован
$trigger->add('http:get:/home.html', function () {
if (User::id() == false) {
return 'Нужно авторизироваться';
}
}, [
'break' => true
]);
// Или выводим приветствие
$trigger->add('http:get:/home.html', function () {
return 'Привет';
});
// Пользователь зашёл по HTTP типа GET на страницу /home.html
echo $trigger->run('http:get:/home.html');
// Очищаем кэш новостей
$trigger->add('module:news:add', function () {
Cache::clear('module:news');
});
// Событие что была добавлена новость с id 100
$trigger->run('module:news:add', [
'id' => 100
]);
// Пишем кэш в Redis
$trigger->add('cache:set', function ($match, $data) {
CacheRedis::set($data['key'], $data['value']);
});
// Пишем в файл на всякий случай
$trigger->add('cache:set', function ($match, $data) {
CacheFile::set($data['key'], $data['value']);
});
// Генерируем команду на запись в кэш
$trigger->run('cache:set', [
'key' => 'ключ',
'value' => 'данные для кэширования'
]);
// Берём кэш из редиса, если сервер редиса доступен
$trigger->add('cache:get', function ($match, $data) {
if (CacheRedis::status() == true) {
return CacheRedis::get($data['key']);
}
}, [
'break' => true
]); // Параметр break, остановит стек, если обработчик что-то вернул (не null)
// Если редис ничего не вернул, то запустится следующий обработчик и вернёт кэш из файла
$trigger->add('cache:get', function ($match, $data) {
if (CacheFile::status() == true) {
return CacheFile::get($data['key']);
}
});
// Генерируем команду на получение кэша
$trigger->run('cache:get', [
'key' => 'ключ'
]);