codingculture / request-resolver-bundle
结合symfony OptionsResolver和Requests的强大功能,为您创建一个简洁的请求API
3.0.2
2024-03-27 10:04 UTC
Requires
- symfony/config: ^4.0 || ^5.0 || ^6.0
- symfony/dependency-injection: ^4.0 || ^5.0 || ^6.0
- symfony/http-foundation: ^4.0 || ^5.0 || ^6.0
- symfony/http-kernel: ^4.0 || ^5.1.5 || ^6.0
- symfony/options-resolver: ^4.0 || ^5.0 || ^6.0
Requires (Dev)
- phpspec/phpspec: ^7.1
README
这个Symfony扩展试图使请求断言变得更简单。
此扩展仍在开发中。
仅支持PHP7.1及以上。
使用方法
<?php
...
class SomeController extends Controller
{
public function someAction()
{
$request = $this->get('codingculture.requestresolver.resolver')->resolve(new SomeRequest());
$request->getId();
}
}
<?php
...
final class SomeRequest implements ResolvableRequestInterface
{
private $options = [];
public function getId(): string
{
return $this->options['id'];
}
public function defineOptions(OptionsResolver $resolver): OptionsResolver
{
$resolver->setRequired('id')
}
public function setOptions(array $options)
{
$this->options = $options;
}
public function getContentType(): string
{
return RequestResolver::CONTENT_TYPE_ALLOW_ALL;
}
}
如果用户发送了一个无效的请求,在resolve方法上将会抛出InvalidArgumentException(或其扩展)异常。
待办事项
- 编写更好的文档