$defaults * @return self */ public static function from_array($data, $defaults) { $data = is_array($data) ? $data : []; $instance = new self(); $defaultTop = getOrNull($defaults['top']); $defaultRight = getOrNull($defaults['right']); $defaultBottom = getOrNull($defaults['bottom']); $defaultLeft = getOrNull($defaults['left']); $instance->top = new StringAttr(getOrNull($data['top']), $defaultTop); $instance->right = new StringAttr( getOrNull($data['right']), $defaultRight ); $instance->bottom = new StringAttr( getOrNull($data['bottom']), $defaultBottom ); $instance->left = new StringAttr(getOrNull($data['left']), $defaultLeft); return $instance; } }