一、基本概念php
一次http請求 輸入(Request):header信息、get信息、post數據等html
輸出(Response):symfony通過處理返回的信息,包括頁面、json字符串、URL跳轉等web
二、Requestjson
$this->getRequest()session
httpie工具架構
HTTPie (讀aych-tee-tee-pie)是一個 HTTP 的命令行客戶端。其目標是讓 CLI 和 web 服務之間的交互儘量的人性化。app
安裝參考http://blog.csdn.net/pzw_0612/article/details/46521965工具
http://www.cnblogs.com/huangjacky/archive/2012/03/28/2421866.htmlpost
用httpie模擬表單提交(post)this
>http -f post http://localhost:8000/app_dev.php/page/test name=lily
三、Response
<?php namespace Scource\WebBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;//注意不要引用錯 use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\RedirectResponse; class DefaultController extends Controller { /** * @Route("/page/test1") */ public function test1Action(){
//不使用模板,直接輸出內容或者跳轉 //return new RedirectResponse('http://www.cnblogs.com/tianxintian22/');重定向 //return new JsonResponse(array('a'=>'abcdef'));返回json串 return new Response('11111111111'); } }
四、session
$this->getRequest()->getSession()->set('b', 'ni hao!'); $this->getRequest()->getSession()->get('b');
若是不能正確獲取到session的值,多是app/cache/dev目錄下session的權限不對。
//調用flashmessage,只能顯示一次就被拋棄,通常用在表單用戶信息提示 //php
$this->getRequest()->getSession()->getFlashBag()->add('notice','you have something wrong');
//twig
{% for flashMessage in app.session.flashbag.get('notice') %}
<div class="flash-notice">
{{ flashMessage }}
</div>
{% endfor %}
五、Service -- 服務
程序架構的方式
做用:把特定事情的類或方法獨立於當前代碼單獨存在並經過Service進行調用。
獲取服務:$this->get();....