Files
moodle/lib/psr/clock
Andrew Nicols 670121daa3 MDL-82824 core: Add missing composer/PSR for various libs
Add missing aws-sdk composer.json
Add missing composer/PSR4 for SimplePie
Add missing composer/PSR4 for others
Add missing composer/PSR4 for markdown
Add missing composer/PSR4 for PHP-CSS-Parser
Add missing composer/PSR4 for Mustache
Add missing composer/PSR4 for RTLCSS
Add missing composer/PSR4 for SCSSPHP
Add missing composer/PSR4 for OpenSpout
Add missing composer/PSR4 for LTI
Add missing composer/PSR4 for GeoPattern
Add missing composer/PSR4 for CFPropertylist
Add missing composer/PSR4 for ZipStream
Add missing composer/PSR4 for PSR-20
Add missing composer/PSR4 for phpxmlrpc
Add missing composer/PSR4 for WebAuthn
2024-11-04 11:52:07 +08:00
..

PSR Clock

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.

Installation

composer require psr/clock

Usage

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

<?php

use Psr\Clock\ClockInterface;

class Foo
{
    private ClockInterface $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 provide-section like this:

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

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