Skip to content
php-figPublic

About

PSR-20 repository

Topics

Resources

Stars

652 stars

Watchers

11 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[WIP] PSR Clock

Work in Progress!

This repository holds the interface for PSR-20.

Note that this is not a clock of its own. It is merely an interface that describes a clock. See the specification for more details.

CAVEAT: This is currently Work in Progress!

Do not (I repeat: Do NOT) rely on this interface being stable!

Using this as long as the PSR is not officially released happens at your own risk!

Installation

# Remember: This PSR is not yet accepted and 
# might change at any time 
# without prior notice
composer require psr/clock

Usage

If you need a clock, you can use the interface like this:

<?php

/*
 * Remember: This PSR is not yet accepted and 
 * might change at any time 
 * without prior notice
 */
use Psr\Clock\ClockInterface;

class Foo
{
    private $clock;

    public function __construct(ClockInterface $clock)
    {
        $this->clock = $clock;
    }

    public function doSomething()
    {
        /** @var DateTimeImmutable $currentDateAndTime */
        $currentDateAndTime = $this->clock()->now();
        // do something useful with that information
    }
}

You can then pick one of the implementations of the interface to get a clock.

If you want to implement the interface, you can require this package and implement Psr\Clock\ClockInterface in your code.

Don't forget to add psr/clock-implementation to your composer.jsons provides-section like this:

{
  "provides": {
    "psr/clock-implementation": "1.0"
  }
}

And please read the specification text for details on the interface.

About

PSR-20 repository

Topics

Resources

Stars

652 stars

Watchers

11 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages