empress-php / empress

Empress is a flexible microframework for creating async web applications in PHP 8.1.
MIT License
15 stars 0 forks source link

Change signatures for validatedBody and validatedForm #44

Open jakobmats opened 3 years ago

jakobmats commented 3 years ago

Currently validatedBody's signature is:

public function validatedBody(): Promise

But should read as:

/**
 * @return Promise<WrappedValue>
 */
public function validatedBody(string $validatorName): Promise;

Similarly validatedForm should yield a Promise that'll evaluate to something like WrapedForm which will allow for field-wise validation:

 /**
 * @return Promise<WrappedForm>
*/
public function validatedForm(): Promise;

Hence validation:

$form = yield $ctx->validatedForm();

$age = $form
    ->field('age')
    ->to('int')
    ->unwrap();