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. 

 

posted @ 2019-03-02 17:58  _Ennio  阅读(284)  评论(0编辑  收藏  举报