herosphp / validate
validate adapter herosphp Framework
v1.0.0
2022-09-22 01:02 UTC
Requires
- php: ^8.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-12-22 05:29:30 UTC
README
在中间件上进行验证
install
composer install herosphp/validate
usage
在中间件层验证参数是正确
<?php
namespace app\middleware;
use herosphp\core\HttpRequest;
use herosphp\core\MiddlewareInterface;
use herosphp\plugin\validate\Valid;
use herosphp\plugin\validate\Validate;
use herosphp\plugin\validate\ValidateException;
use herosphp\WebApp;
class ValidateMiddleware implements MiddlewareInterface
{
/**
* @throws \ReflectionException
*/
public function process(HttpRequest $request, callable $handler)
{
$reflectionMethod = new \ReflectionMethod(WebApp::$_targetController, WebApp::$_targetMethod);
$reflectionAttributes = $reflectionMethod->getAttributes(Valid::class);
if ($reflectionAttributes) {
foreach ($reflectionAttributes as $validAttribute) {
/** @var Valid $methodValidInstance */
$methodValidInstance = $validAttribute->newInstance();
$methodVInstance = new ($methodValidInstance->class);
if (!$methodVInstance instanceof Validate) {
throw new ValidateException("{$methodVInstance->class} must extend \\herosphp\\plugin\\validate\Validate");
}
$methodVInstance->scene($methodValidInstance->scene)->check([...$request->get(), ...$request->post()]);
}
}
return $handler($request);
}
}