rest(表現層狀態轉化)是一種原則,而符合這種原則的架構就稱之為restful架構。
表現:
通過 get /library/1/book/2 這種風格的uri來訪問控制器並傳遞引數
其中get是不出現在uri中的,而是一種操作方式(get、post、delete、put),控制器通過判斷請求的方式,來決定呼叫的方法
所以 get /book/1 和 post /book/1 ,雖然訪問的url完全一樣,但是根據請求方式的不同,實際上呼叫的是控制器內不同的方法
實現:
使用 rest_controller 擴充套件 ci_controller
通過路由重寫,可以使用非正常格式的 url 訪問對應的物件方法
通過 rest_controller 判斷請求的型別,並將url中的引數交給相應的控制器處理
如果通過 get 傳送請求到url www.test.com/index.php/user/1,
那麼會自動呼叫 user 控制器中的 index_get($id) 方法,並將引數 1 傳遞給 $id
如果通過 get 傳送請求到url www.test.com/index.php/user/book/name/foo/id/1
那麼會自動呼叫 user 控制器中的 login_get() 方法,通過 $this->get('name') 和 $this->get('id') 來分別獲取到引數 foo 和 1
如果通過 post 傳送請求到url www.test.com/index.php/user/login
那麼會自動呼叫 user 控制器的 login_post() 方法,通過形如 $this->post('name') 分別獲取對應的引數
put\delete 同理
返回資料:
控制器中相應的函式經過一系列處理後,需要返回包含足夠資訊的json格式字串(根據具體需求)
通過形如下面的方法返回json格式的字串:
$data = ['name'=>'','age'=>''];
$this->response($data);
CI框架擴充套件系統核心類的方法分析
首先你系統擴充套件類是放在application core下面的,本來系統核心類是ci controller,所以你不能以ci 開頭了,你需要開啟 application config config.php 修改 config subclass prefix程式設計客棧 my 為你的字首 一些公共的...
CI框架分頁類的使用 1
首先,要查詢資料庫,確定一共有多少條資料 this load model test model user this test model user select all pageall count user 總條數 pagenum 20 每頁顯示的條數 其次,進行config的配置 config t...
也用php啦實現類似CI框架的路由
前端時間寫了個關於手機應用的api,一直是用的query string這種位址,而且還是根據乙個act引數來區分所有的動作,這種讓開發人員看起來比較費眼。本來想改寫為 c controller m method type 3 id 1 這種形式,利用m引數來載入檔案並進行例項化,後來看了sina w...