ahmard/clock

PHP Clock written on top of ReactPHP

0.0.4 2021-07-01 18:16 UTC

This package is auto-updated.

Last update: 2024-10-29 06:19:02 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();
});