2017 © Pedro Peláez
 

library range

A library of range objects

image

texdc/range

A library of range objects

  • Tuesday, February 27, 2018
  • by texdc
  • Repository
  • 1 Watchers
  • 3 Stars
  • 9 Installations
  • PHP
  • 0 Dependents
  • 1 Suggesters
  • 1 Forks
  • 0 Open issues
  • 9 Versions
  • 0 % Grown

The README.md

range

Oh, give me a home where the buffalo roam
Where the deer and the antelope play
Where seldom is heard a discouraging word
And the skies are not cloudy all day

-- Home on the Range, (*1)

The inspiration for this library came from a discussion by Martin Fowler., (*2)

Software License Build Status Coverage Status, (*3)

install

Composer:, (*4)

composer require texdc/range @stable

examples

Range

Ranges provide simple validation and iteration., (*5)

use texdc\range\DateRange;

$dateRange = new DateRange(new DateTime, new DateTime('+1 month'));

assert($dateRange->includes(new DateTime('+3 days')));

echo $dateRange->getSpan()->days;

foreach ($dateRange as $day) {
    echo $day->format('l, F jS, Y');
}

Ranges can also be compared against each other., (*6)

use texdc\range\IntegerRange;

$range1 = new IntegerRange(1, 5);
$range2 = new IntegerRange(8, 3);
$range3 = new IntegerRange(5, 8);

assert($range1->overlaps($range2));
assert($range2->isContraryTo($range1));
assert($range3->abuts($range2));
assert($range1->begins(IntegerRange::merge($range1, $range3)));
assert($range3->ends(IntegerRange::combine([$range1, $range3])));

See the tests for more comparisons!, (*7)

Enablement

Enablements leverage a range for more robust alternatives to simple boolean flags., (*8)

use texdc\range\DateEnablement;

class DatedBannerAd extends AbstractBannerAd
{
    /**
     * @var DateEnablement
     */
    private $enablement;

    // ...

    public function render()
    {
        if ($this->enablement->isEnabled()) {
            return parent::render();
        }
    }
}

The Versions

27/02 2018

dev-develop

dev-develop

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~7.0

 

The Development Requires

by George D. Cooksey, III

range daterange date range enablement

27/02 2018

dev-master

9999999-dev

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~7.0

 

The Development Requires

by George D. Cooksey, III

range daterange date range enablement

27/02 2018

v2.0.1

2.0.1.0

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~7.0

 

The Development Requires

by George D. Cooksey, III

range daterange date range enablement

14/10 2017

v2.0.0

2.0.0.0

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~7.0

 

The Development Requires

by George D. Cooksey, III

range daterange date range enablement

28/02 2016

v1.2.1

1.2.1.0

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~5.6 || ~7.0

 

The Development Requires

by George D. Cooksey, III

range daterange ddd value object date range

28/02 2016

v1.2.0

1.2.0.0

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~5.6 || ~7.0

 

The Development Requires

by George D. Cooksey, III

range daterange ddd value object date range

31/01 2015

v1.1.1

1.1.1.0

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~5.4

 

The Development Requires

by George D. Cooksey, III

range daterange ddd value object date range

21/12 2014

v1.1.0

1.1.0.0

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~5.4

 

The Development Requires

by George D. Cooksey, III

range daterange ddd value object date range

23/09 2014

v1.0.0

1.0.0.0

A library of range objects

  Sources   Download

MIT

The Requires

  • php ~5.4

 

The Development Requires

by George D. Cooksey, III

range daterange ddd value object date range