The domain represents a group of entities, their properties and relationships. A single entity is represented through an entity map.
저자: Elliot Levin (elliot@aanet.com.au)
상속: use trait Storm\Core\Helpers\Type
예제 #1
0
 public function GetDiscardedRelationship(Object\Domain $Domain, Object\UnitOfWork $UnitOfWork, $ParentEntity, $RelatedEntity)
 {
     if ($this->CascadeDiscard) {
         $UnitOfWork->Discard($RelatedEntity);
     }
     return $Domain->DiscardedRelationship($ParentEntity, $RelatedEntity);
 }
 private function __ConstructProxy(Domain $Domain, RevivalData $AlreadyKnownRevivalData, callable $LoadRevivalDataFunction)
 {
     $this->Initialize();
     $this->__Domain = $Domain;
     $this->__LoadRevivalDataFunction = $LoadRevivalDataFunction;
     $Unsetter = function ($PropertyName) {
         unset($this->{$PropertyName});
     };
     foreach (static::$__PropertiesToUnset as $DeclaringClass => $PropertyNames) {
         \Closure::bind($Unsetter, $this, $DeclaringClass);
         array_walk($PropertyNames, $Unsetter);
     }
     $Domain->LoadEntity($AlreadyKnownRevivalData, $this);
     $this->__IsConstructed = true;
 }
예제 #3
0
 /**
  * Commits the supplied operations to the underlying database within a transactional scope.
  * 
  * @param array $EntitiesToPersist The entities to persist
  * @param array $ProceduresToExecute The procedures to execute
  * @param array $EntitiesToDiscard The entities to discard
  * @param array $CriteriaToDiscard The criteria of entities to discard
  * @return void
  */
 public final function Commit(array $EntitiesToPersist, array $ProceduresToExecute, array $EntitiesToDiscard, array $CriteriaToDiscard)
 {
     $UnitOfWork = $this->Domain->BuildUnitOfWork($EntitiesToPersist, $ProceduresToExecute, $EntitiesToDiscard, $CriteriaToDiscard);
     $Transaction = new Relational\Transaction();
     $this->MapUnitOfWorkToTransaction($UnitOfWork, $Transaction);
     $this->Database->Commit($Transaction);
 }
예제 #4
0
 private function IndexEntitiesByIdentity(Object\Domain $Domain, array &$Entities)
 {
     $IndexedEntities = [];
     foreach ($Entities as $Key => $Entity) {
         $IndexedEntities[$Domain->Identity($Entity)->Hash()] = $Entity;
     }
     $Entities = $IndexedEntities;
 }
예제 #5
0
 protected function EntityMap(Object\Domain $Domain)
 {
     return $Domain->GetEntityMap(Post::GetType());
 }
예제 #6
0
 public function __construct()
 {
     parent::__construct();
 }
예제 #7
0
 public function GetDiscardedRelationship(Object\Domain $Domain, Object\UnitOfWork $UnitOfWork, $ParentEntity, $ChildEntity)
 {
     return $Domain->DiscardedIdentifyingRelationship($ParentEntity, $ChildEntity, $UnitOfWork);
 }
예제 #8
0
 protected function ReviveArrayOfRevivalData(Object\Domain $Domain, $Entity, array $RevivalDataArray)
 {
     return $Domain->ReviveEntities($this->GetEntityType(), $RevivalDataArray);
 }