2017 © Pedro Peláez
 

library specification

Basic classes for Specification pattern in PHP.

image

tanigami/specification

Basic classes for Specification pattern in PHP.

  • Wednesday, November 22, 2017
  • by tanigami
  • Repository
  • 1 Watchers
  • 4 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 167 % Grown

The README.md

PHP Specification

Scrutinizer Code Quality Code Coverage Build Status, (*1)

Basic classes for Specification pattern in PHP. On top of the typical set of and, or and not specificaitons, anyOf, oneOf, noneOf specifications are proposed., (*2)

This package is based on the implementation in carlosbuenosvinos/ddd., (*3)

Installation

$ composer require tanigami/specification

Usage example

<?php

use Tanigami\Specification\Specification;
use Tanigami\Specification\OneOfSpecification;

class Order
{
    public function isPaid()
    {
        return true;
    }

    public function isShipped()
    {
        return false;
    }

    public function isCancelled()
    {
        return false;
    }
}

class UnshippedOrderSpecification extends Specification
{
    public function isSatisfiedBy($order): bool
    {
        return !$order->isShipped();
    }
}

class PaidOrderSpecification extends Specification
{
    public function isSatisfiedBy($order): bool
    {
        return $order->isPaid();
    }
}

class CancelledOrderSpecification extends Specification
{
    public function isSatisfiedBy($order): bool
    {
        return $order->isCancelled();
    }
}

$paid = new PaidOrderSpecification;
$unshipped = new UnshippedOrderSpecification;
$cancelled = new CancelledOrderSpecification;


$paid->and($unshipped)->isSatisfiedBy(new Order); // => true
(new OneOfSpecification($paid, $unshipped, $cancelled))->isSatisfiedBy(new Order); // => true

The Versions

22/11 2017

dev-master

9999999-dev

Basic classes for Specification pattern in PHP.

  Sources   Download

MIT

The Development Requires

22/11 2017

v1.1.0

1.1.0.0

Basic classes for Specification pattern in PHP.

  Sources   Download

MIT

The Development Requires

19/11 2017

v1.0.0

1.0.0.0

Basic classes for Specification pattern in PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires