function set($name, $value, &$ref) { $m = 'set' . $name; if (method_exists($ref, $m) && !is_null($value = $ref->{$m}($value))) { return $value; } return parent::set($name, $value, $ref); }
function set($name, $value, &$ref) { $prmName = $this->Name; if ($name instanceof \Util\Interfaces\Nameable) { $name = $name->getName(); } if (!property_exists($ref, $prmName) || !is_array($ref->{$prmName})) { $ref->{$prmName} = array(); } if ($name == $prmName && is_array($value)) { return $ref->{$prmName} = array_merge($ref->{$prmName}, $value); } else { return $ref->{$prmName}[$name] = $value; } return parent::set($name, $ref); }