PHPackages                             itscript/countdown-gif - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. itscript/countdown-gif

ActiveLibrary

itscript/countdown-gif
======================

Countdown gif generator

1.0.3(8y ago)1104MITPHPPHP ^5.6|^7.0

Since Sep 1Pushed 8y ago2 watchersCompare

[ Source](https://github.com/ITScript/Countdown-gif)[ Packagist](https://packagist.org/packages/itscript/countdown-gif)[ RSS](/packages/itscript-countdown-gif/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (1)Versions (5)Used By (0)

Countdown-gif
=============

[](#countdown-gif)

Flexible countdown builder, supports svg templating

Installation
============

[](#installation)

You can install directly via Composer:

```
$ composer require "itscript/countdown-gif":"^1.0"
```

Simple usage
------------

[](#simple-usage)

```

            .cls-1 {
                font-size: 62.5px;
                text-anchor: middle;
                font-weight: 900;
            }

    {h1}
    {h2}
    :
    {m1}
    {m2}
    :
    {s1}
    {s2}

XML;

$now = new \DateTimeImmutable();
$end = $now->add(new \DateInterval('PT45296S'));

$sequence = new \ITS\Countdown\GIF\FrameSequenceBuilder\DateTimeFrameSequenceBuilder($template, $now, $end);

$middleware = new \ITS\Countdown\GIF\FrameMiddleware\CompositeFrameMiddleware(
    new \ITS\Countdown\GIF\FrameMiddleware\InjectVariableFrameMiddleware(),
    new \ITS\Countdown\GIF\FrameMiddleware\SvgToGifFrameMiddleware()
);

$sequence = new \ITS\Countdown\GIF\FrameSequenceBuilder\MiddlewareFrameSequenceBuilder($sequence->getSequence(), $middleware);
$handler = new \ITS\Countdown\GIF\FrameSequenceHandler\SaveFrameSequenceHandler();

header("Content-Type: image/gif");
$handler->process($sequence->getSequence());
```

Caching
-------

[](#caching)

For optimization you can use cache for each frame. Just add caching middleware, as below

```
