ahmard / clock
PHP Clock written on top of ReactPHP
0.0.4
2021-07-01 18:16 UTC
Requires
- php: ^7.4 || ^8.0
- fightbulc/moment: ^1.33
- jolicode/jolinotif: ^2.3
- react/child-process: ^0.6.2
- react/event-loop: ^1.1
Requires (Dev)
- phpstan/phpstan: ^0.12.83
- symfony/var-dumper: ^5.2
This package is auto-updated.
Last update: 2024-11-29 06:35:37 UTC
README
A clock description here...
Installation
composer require ahmard/clock
Usage
- Seconds
use Clock\Clock; Clock::after(1, function (){ echo 'Executed'; }); Clock::forEachSecond(function (){ echo "1 second has passed\n"; }); Clock::forEachSecond(5, function (){ echo "5 seconds has passed\n"; });
- Minutes
use Clock\Clock; Clock::after('1 minute', function (){ echo 'Executed'; }); Clock::forEachMinute(2, function (){ echo "2 minutes has passed\n"; });
- Hours
use Clock\Clock; Clock::after('1 hour', function (){ echo 'Executed'; }); Clock::forEachHour(1, function (){ echo "1 hour has passed\n"; });
Advance usage
use Clock\Clock; use React\EventLoop\TimerInterface; Clock::forEach('1 minute 5 seconds', function (){ echo "1 minute 5 seconds has passed\n"; }); Clock::forEach('2 minutes', function (TimerInterface $timer){ echo "2 minutes has passed\n"; Clock::stop($timer); });
Sound
This library comes with sounds out of the box
To use them, you will need to install Sox
use Clock\Clock;use Clock\Sound; Sound::play(__DIR__ . '/test.mp3'); Clock::forEachMinute(function (){ Sound::playAlarm(); });
Notification
Push notification to your system
use Clock\Clock; use Clock\Notification; $notification = Notification::create() ->setTitle('My Title') ->setIcon('/drive/path/to/icon.jpg'); $notification ->setBody('My notification body here') ->send(); Clock::forEach('2 minutes', function () use ($notification){ $notification->setBody('Two minutes has passed'); $notification->send(); });