Exemplo n.º 1
0
 /**
  * Map targets to entities
  *
  * @param array    $entities
  * @param array    $targets
  */
 protected function map($entities, $targets)
 {
     $identifier = $this->targetMetadata->getIdentifier();
     foreach ($targets as $target) {
         $id = $this->targetMetadata->getValue($target, $this->keyTo, true);
         foreach ($entities as $entity) {
             if ($id == $this->metadata->getValue($entity, $this->keyFrom, true)) {
                 $value = $this->metadata->getValue($entity, $this->name);
                 if (is_array($value)) {
                     $value[$this->targetMetadata->getValue($target, $identifier)] = $target;
                 } else {
                     $value = $target;
                 }
                 $this->metadata->setValue($entity, $this->name, $value);
             }
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Dispatches an event to all registered listeners.
  *
  * @param  string   $name
  * @param  Metadata $metadata
  * @param  array    $arguments
  * @return bool
  */
 public function trigger($name, Metadata $metadata, array $arguments)
 {
     $this->events->trigger("{$metadata->getEventPrefix()}.{$name}", $arguments);
 }
Exemplo n.º 3
0
 /**
  * Subscribes model lifecycle callbacks.
  *
  * @param Metadata $metadata
  */
 protected function subscribe(Metadata $metadata)
 {
     foreach ($metadata->getEvents() as $event => $methods) {
         foreach ($methods as $method) {
             $this->events->on($metadata->getEventPrefix() . '.' . $event, [$metadata->getClass(), $method]);
         }
     }
 }