Example #1
0
File: Props.php Project: jasir/Ra
 /**
  * @param array $clonedPropertiesNames
  * @param array $newProperties
  * @return Props
  */
 public final function create($clonedPropertiesNames = [], $newProperties = [])
 {
     $props = new self($newProperties);
     foreach ($clonedPropertiesNames as $propName) {
         if ($this->hasComputed($propName)) {
             if ($props->hasProp($propName)) {
                 throw new PropExistsException($propName, $props->props, $props->computed);
             }
             $props->computed($propName, $this->computed[$propName]);
         } else {
             $props->set($propName, $this->get($propName));
         }
     }
     return $props;
 }