예제 #1
0
 /**
  * @param DomainEventInterface $event
  */
 protected function recordApplyAndPublishEvent(DomainEventInterface $event)
 {
     Validator::assert($event);
     $this->version()->increment(VersionIncrementType::PATCH());
     $event->setVersion($this->version()->patch());
     $this->recordEvent($event);
     $this->applyEvent($event);
     $this->publishEvent($event);
 }
예제 #2
0
 /**
  * @param MigrationsGenerateCommand $command
  */
 public function migrationsGenerate(MigrationsGenerateCommand $command)
 {
     $latestAvailableVersion = $this->migrator->status()->latestAvailableVersion();
     if ($latestAvailableVersion == null) {
         $latestAvailableVersion = Version::fromString('0.0.0');
     }
     $nextVersion = $latestAvailableVersion;
     if ($command->isMajor()) {
         $nextVersion->increment(VersionIncrementType::MAJOR());
     } else {
         $nextVersion->increment(VersionIncrementType::MINOR());
     }
     $command->getIo()->writeLine('Generating migrations classes for version <c2>' . $nextVersion->__toString() . '</c2>');
     try {
         $this->migrator->generate($nextVersion);
         $command->getIo()->writeLine('The migration has been <c1>successfully generated</c1>');
     } catch (\Exception $e) {
         $command->getIo()->writeLine('<error>' . $e->getMessage() . '</error>');
     }
 }
예제 #3
0
파일: Version.php 프로젝트: cubiche/cubiche
 /**
  * Increment the patch version.
  *
  * @param VersionIncrementType $type
  */
 public function increment(VersionIncrementType $type)
 {
     switch ($type) {
         case VersionIncrementType::MAJOR():
             ++$this->major;
             $this->minor = 0;
             $this->patch = 0;
             break;
         case VersionIncrementType::MINOR():
             ++$this->minor;
             $this->patch = 0;
             break;
         default:
             ++$this->patch;
             break;
     }
 }
예제 #4
0
 /**
  * Test version.
  */
 public function testVersion()
 {
     $this->given($version = Version::fromString('1.0'))->then()->integer($version->major())->isEqualTo(1)->integer($version->minor())->isEqualTo(0)->integer($version->patch())->isEqualTo(0);
     $this->given($version = Version::fromString('3.0.9.1'))->then()->integer($version->major())->isEqualTo(3)->integer($version->minor())->isEqualTo(0)->integer($version->patch())->isEqualTo(9)->string($version->__toString())->isEqualTo('3.0.9');
     $this->given($version = new Version(0, 145, 324))->then()->integer($version->major())->isEqualTo(0)->integer($version->minor())->isEqualTo(145)->integer($version->patch())->isEqualTo(324)->and()->when($version->increment(VersionIncrementType::MAJOR()))->then()->integer($version->major())->isEqualTo(1)->integer($version->minor())->isEqualTo(0)->integer($version->patch())->isEqualTo(0)->boolean($version->isMajorVersion())->isTrue()->boolean($version->isMinorVersion())->isFalse()->and()->given($version = new Version(0, 145, 324))->when($version->increment(VersionIncrementType::MINOR()))->then()->integer($version->minor())->isEqualTo(146)->integer($version->patch())->isEqualTo(0)->boolean($version->isMajorVersion())->isFalse()->boolean($version->isMinorVersion())->isTrue()->and()->given($version = new Version(0, 145, 324))->when($version->increment(VersionIncrementType::PATCH()))->then()->integer($version->patch())->isEqualTo(325)->boolean($version->isMajorVersion())->isFalse()->boolean($version->isMinorVersion())->isFalse()->and()->when($version->setMinor(657))->then()->integer($version->minor())->isEqualTo(657)->and()->when($version->setPatch(54))->then()->integer($version->patch())->isEqualTo(54);
 }