2.3Symfony路由(Routing)之请求(Request)

public属性

Request 对象保存有关客户端请求的信息。可以通过几个公共属性访问此信息:

request: 相当于$_POST;
query: 相当于$_GET( $request->query->get('name'));
cookies: 相当于$_COOKIE;
attributes:没有等效项 - 由您的应用程序用于存储其他数据(见下文);
files: 相当于$_FILES;
server: 相当于$_SERVER;
headers: 主要相当于$_SERVER ( $request->headers->get('User-Agent')) 的一个子集。

每个属性都是一个Symfony\Component\HttpFoundation\ParameterBag 实例(或一个子类),它是一个数据持有者类:

request:如果数据来自$_POST参数,Symfony\Component\HttpFoundation\ParameterBag或者Symfony\Component\HttpFoundation\InputBag;
query: Symfony\Component\HttpFoundation\InputBag;
cookies: Symfony\Component\HttpFoundation\InputBag;
attributes: Symfony\Component\HttpFoundation\ParameterBag;
files: Symfony\Component\HttpFoundation\FileBag;
server: Symfony\Component\HttpFoundation\ServerBag;
headers:Symfony\Component\HttpFoundation\HeaderBag.

所有Symfony\Component\HttpFoundation\ParameterBag实例都有检索和更新其数据的方法:

all():返回参数。
keys():返回参数的键。
replace():用一组新参数替换当前参数。
add():添加参数。
get():按名称返回参数。
set():按名称设置参数。
has():如果参数已定义,则返回true。
remove():删除一个参数。

该Symfony\Component\HttpFoundation\ParameterBag实例还有一些方法来过滤输入值:

getAlpha():返回参数值的字母字符;
getAlnum():返回参数值的字母字符和数字;
getBoolean():返回转换为布尔值的参数值;
getDigits():返回参数值的数字;
getInt():返回转换为整数的参数值;
filter():使用 PHPfilter_var函数过滤参数。

所有 getter 最多接受两个参数:第一个是参数名称,第二个是参数不存在时返回的默认值:

// the query string is '?foo=bar'

$request->query->get('foo');
// returns 'bar'

$request->query->get('bar');
// returns null

$request->query->get('bar', 'baz');
// returns 'baz'

protected属性

//访问与请求正文一起发送的原始数据
$content = $request->getContent();

//访问请求的“路径信息”
$pathInfo = $request->getPathInfo();

//访问会话
$session = $request->getSession();

//返回按质量降序排列的已接受内容​​类型列表
$acceptableContentTypes = $request->getAcceptableContentTypes();

//返回按质量降序排列的接受语言列表
$languages = $request->getLanguages();

//返回按质量降序排列的接受字符集列表
$charsets = $request->getCharsets();

//返回按质量降序排列的可接受编码列表
$encodings = $request->getEncodings();

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/symfony/6801.html

发表评论

登录后才能评论