public function __call($method, $arguments) { if ($className = static::findFieldClass($method)) { $name = array_get($arguments, 0, ''); $element = new $className($name, array_slice($arguments, 1)); $this->pushField($element); return $element; } }