symfony+;fosrest:如何验证路由参数
例如,我有几个操作使用相同的route参数symfony+;fosrest:如何验证路由参数,symfony,fosrestbundle,Symfony,Fosrestbundle,例如,我有几个操作使用相同的route参数 /** * @Rest\Get("/api/ip/{ip}", name="app_ip_get") */ public function ipGetAction(DocumentManager $documentManager, $ip) 如何创建一个ip验证程序,并在任何地方使用它? С这只能用表单完成吗?如果我是你,我会创建一个名为IpAddress的地址: final class IpAddress { private $valu
/**
* @Rest\Get("/api/ip/{ip}", name="app_ip_get")
*/
public function ipGetAction(DocumentManager $documentManager, $ip)
如何创建一个ip验证程序
,并在任何地方使用它?
С这只能用表单完成吗?如果我是你,我会创建一个名为
IpAddress的地址:
final class IpAddress
{
private $value;
public function __construct($value)
{
if (inet_pton($value) === false) {
throw new \LogicException('Invalid IPv4/6 address');
}
$this->value = (string)$value;
}
public function getAddress(): string
{
return $this->value;
}
public function __toString(): string
{
return $this->getAddress();
}
}
并创建将根据请求加载此值对象的自定义:
/**
* @Rest\Get("/api/ip/{ip}", name="app_ip_get")
*/
public function ipGetAction(DocumentManager $documentManager, IpAddress $ip)
在param转换器中,在创建地址时只捕获异常,如果捕获到异常,则重新调用将由框架处理的异常。拥抱正确的OOP,停止这种疯狂:)谢谢!在空闲时间,我开始基于ObjectValue思想制作symfony包