controller
$a = $this->getRequest()->getSession()->get("c");
controller
按我的理解来说,就是获取request之后进行的一系列转换,转换成response的这个过程
各种类使用之前必须use包含进来
request
这里是通过getRequest() 类的一系列方法来获取的,
例,传入http://www.....com/1?a=2; 这里可以通过
getRequest()->get('a');
来获取get请求传入的值,获取url,判断是否是http等等,
这里需要注意一点,如果request既有post也有get,并且有同名变量,获取该变量的值时,get的优先级是高于post(即获取的是get里面的同名变量),不过一般也不会这样设计
response
即向外返回的数据,一般通过
return new Response();
return new JsonResponse(); //json格式
return new RedirectResponse(); //跳转到一个链接
来返回,查看源码可知,类似于JsonResponse等都是对Response的封装而产生的一个类,更为定制化的类。
controller---session
如何调用session,举个例子,
首先通过getSession()下的方法进行设置,刷新界面,
$this->getRequest()->getSession()->set("c",1000);
这里缓存里有了c的值,再通过getSession()下的get方法来获取c的值
$a = $this->getRequest()->getSession()->get("c");
另一个例子,getSession 下的getFlashBag可以用来进行错误信息的输出
$this->getRequest()->getSession()->getFlashBag()->add( "message" );
调用时候通过foreach一层一层的进行调用,调用结束之后session会被自动销毁
ps:但是2.3版本的不知道为什么没有getFlashBag这个方法,但是通过查找Session类可以看到Sessioin类里面是有getFlashBag这个方法的,是因为Session继承了SessionInterface,但是他额外写了一个
getFlashBag方法,具体参见 https://www.imooc.com/qadetail/60612
service
目前只做简单理解,和类很相似,比如这里要进行链接数据库,查询数据库等一系列操作,将这些操作统统封装为一个服务,
调用的时候只需要实例化一个类然后调用相应的方法即可,很常见。使用symfony框架是就会经常调用各种service.