public static function POST($params) { //Define model $model = ['title' => ['type' => Validate::TYPE_TEXT, 'max' => 12, 'min' => 3, Validate::REQUIRED], 'content' => ['type' => Validate::TYPE_TEXT, 'max' => 4096, 'min' => 12, Validate::REQUIRED]]; //Require and Validate model Validate::model($params, $model); //Declare them as variables $title = $params['title']; $content = $params['content']; $post = ['title' => $title, 'content' => $content, 'timestamp' => time()]; $post = \Phramework\Models\Filter::castEntry($post, ['timestamp' => Validate::TYPE_UNIX_TIMESTAMP]); //Store ($title, $content) somehow and get the id $id = rand(0, 100); $post['id'] = $id; \Phramework\Models\Response::created('http://localhost/post/' . $id . '/'); //Sample output Phramework::view(['post' => $post], 'post', 'Blog post'); }
/** * Required required values and parse provided parameters into an array * Validate the provided request model and return the * @uses \Phramework\Models\Request::requireParameters * @param array|object $parameters * @param array $model * @return array Return the keys => values collection * @deprecated since 1.0.0 */ public static function parseModel($parameters, $model) { if (is_object($parameters)) { $parameters = (array) $parameters; } $required_fields = []; foreach ($model as $key => $value) { if (in_array('required', $value, true) === true || in_array('required', $value, true) == true) { $required_fields[] = $key; } } Request::requireParameters($parameters, $required_fields); \Phramework\Validate\Validate::model($parameters, $model); $keys_values = []; foreach ($model as $key => $value) { if (isset($parameters[$key])) { if (in_array('nullable', $value) && $parameters[$key] == '0') { $keys_values[$key] = null; continue; } //Set value as null if (in_array('nullable', $value) && !$parameters[$key]) { $keys_values[$key] = null; continue; } /* if ($value['type'] == 'select' && !$parameters[$key]) { $keys_values[$key] = NULL; } else {*/ $keys_values[$key] = $parameters[$key]; /*}*/ } elseif (($value['type'] == 'boolean' || in_array('boolean', $value)) && (!isset($parameters[$key]) || !$parameters[$key])) { $keys_values[$key] = false; } } return $keys_values; }
/** * Validate a regexp * @param mixed input * @param string $field_name [optional] * @return boolean * @throws IncorrectParameters If value type is not correct. */ public static function boolean($input, $field_name = 'boolean') { //Define trivial model $model = [$field_name => ['type' => Validate::TYPE_BOOLEAN, Validate::REQUIRED]]; $parameters = [$field_name => $input]; Validate::model($parameters, $model); return $parameters[$field_name]; }