phpmentors / domain-commons
Commons for domain models
Installs: 222 296
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 4
Forks: 4
Open Issues: 2
Requires
- php: >=5.5
- phpmentors/domain-kata: ~1.3
Requires (Dev)
- phpunit/phpunit: ~4.6
README
Commons for domain models
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.