筆記 使用擴充套件的CI框架實現RESTful框架

2021-08-02 22:19:16 字數 1135 閱讀 7680

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...