June 2017
Intermediate to advanced
394 pages
8h 52m
English
Sometimes, when dealing with certain Domains, the Identities come naturally, with the client consuming the Domain Model. This is likely the ideal case, because the Identity can be modeled easily. Let's take a look at the book-selling market:
namespace Ddd\Catalog\Domain\Model\Book;class ISBN{ private $isbn; private function __construct($anIsbn) { $this->setIsbn($anIsbn); } private function setIsbn($anIsbn) { $this->assertIsbnIsValid($anIsbn, 'The ISBN is invalid.'); $this->isbn = $anIsbn; } public static function create($anIsbn) { return new static($anIsbn); } private function assertIsbnIsValid($anIsbn, $string) { // ... Validates an ISBN code }}
According to Wikipedia: The International Standard Book Number (