ahmard/clock

PHP Clock written on top of ReactPHP

Maintainers

👁 Ahmard

Package info

github.com/Ahmard/clock

pkg:composer/ahmard/clock

Statistics

Installs: 706

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 0

0.0.4 2021-07-01 18:16 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 4a6eaeac043714cdeee41740c9992bc065497878

  • Ahmard <Ahmard06.woop@gmail.com>

clockphp clockreactphp clock

This package is auto-updated.

Last update: 2026-05-29 01:54:33 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();
});