public static function processPost() { if ($post = \Supernova\Core::getPostParameters()) { $namespace = "\\App\\Model\\" . \Supernova\Core::$elements['controller']; $formNamespace = $namespace . "Form"; $objectForm = new $formNamespace(); foreach ($post['data'] as $model => $values) { if ($namespace == "\\App\\Model\\" . ucfirst(\Supernova\Inflector::underToCamel($model))) { $object = new $namespace(); foreach ($values as $key => $val) { $setter = "set" . ucfirst(\Supernova\Inflector::underToCamel($key)); if (isset($objectForm->settings[$key]['widget']['use']) && !empty($objectForm->settings[$key]['widget']['use'])) { $fn = explode("::", $objectForm->settings[$key]['widget']['use']); if (method_exists($fn[0], $fn[1])) { $val = $fn[0]::$fn[1]($val); } } $object->{$setter}($val); } return $object->isValid() ? true : $object->onError(); } } } return null; }