Skip to content

phpmentors-jp/domain-commons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Domain Commons

Commons for domain models

Build Status SensioLabsInsight Total Downloads Latest Stable Version Latest Unstable Version

Installation

Domain Commons can be installed using Composer.

$ composer require phpmentors/domain-commons

Features

DateTime basics

Date and Time

  • Date
  • DateTime
  • MonthDay
  • Year
  • YearMonth
  • HourMin
  • AgeRange

Period

  • Duration
  • Period
  • Term

Traversable

  • DailyTrait / DailyIteratableInterface
  • MonthlyTrait / MonthlyIteratableInterface

You can define a domain specific period as follows:

namespace MyDomain;

use PHPMentors\DomainCommons\DateTime\Date;
use PHPMentors\DomainCommons\DateTime\Period\DailyIteratableInterface;
use PHPMentors\DomainCommons\DateTime\Period\DailyTrait;

class DailyPeriod extends Period implements DailyIteratableInterface
{
    use DailyTrait;

    public function __construct(Date $start, Date $end)
    {
        parent::__construct($start, $end);
        $this->it = $this->iterate(); // this line enables iterator
    }
}

You can iterate this period by date using standard foreach statement as follows:

use PHPMentors\DomainCommons\DateTime\Date;
use MyDomain\DailyPeriod;

$period = new DailyPeriod(new Date('2015-04-12'), new Date('2015-06-30'));

$count = 0;
foreach ($period as $one) {
    echo $one->format('m/d') . PHP_EOL;
}

Utility

  • Clock

Matrix (Typed and Addressed)

  • TypedMatrix
  • AddressedMatrix

Operation

  • ZeroableInterface

String Utility

  • UniqueName

Support

If you find a bug or have a question, or want to request a feature, create an issue or pull request for it on Issues.

Copyright

Copyright (c) 2015 GOTO Hidenori, 2015 KUBO Atsuhiro, All rights reserved.

License

The BSD 2-Clause License