PhalApi那些事兒

1.get、post參數傳遞方式,以及測試地址;
get請求格式:服務器地址//PhalApi/Public/demo/?service=User.GetBaseInfo&/demo/?service=User.GetBaseInfo&user_id=1
返回消息:
{“ret”:200,”data”:{“code”:0,”msg”:”“,”info”:{“id”:”1”,”name”:”dogstar”,”note”:”oschina”}},”msg”:”“}

post請求地址:服務器地址/PhalApi/Public/demo/?service=User.GetBaseInfo&/demo/?service=User.GetBaseInfo
body參數名稱:user_id
body參數值:1
返回消息:
{“ret”:200,”data”:{“code”:0,”msg”:”“,”info”:{“id”:”1”,”name”:”dogstar”,”note”:”oschina”}},”msg”:”“}

2.基於PhalApi的redis擴展
詳細參考地址如下:
http://git.oschina.net/dogstar/PhalApi-Library/tree/master/Redis/
redis安裝在下面有詳細介紹在此只記錄如何將redis擴展至PhalApi架構中;
redis連接信息如下:
redis->connect(‘127.0.0.1’, 6379);
註冊配置文件在PhalApi庫的Config.app文件下面

return array(
    //Redis配置項
    'redis' => array(
        //Redis緩存配置項
        'servers'  => array(
            'host'   => '127.0.0.1',        //Redis服務器地址
            'port'   => '6379',             //Redis端口號
            'prefix' => 'developers_',      //Redis-key前綴
            'auth'   => 'woyouwaimai76',    //Redis鏈接密碼
        ),
        // Redis分庫對應關係
        'DB'       => array(
            'developers' => 1,
            'user'       => 2,
            'code'       => 3,
        ),
        //使用阻塞式讀取隊列時的等待時間單位/秒
        'blocking' => 5,
    ),

);

將下載下來的擴展庫中的Redis文件複製到library文件夾下:
在init入口文件註冊redis拓展 入口文件位置爲 public/init.php

//redis鏈接
DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers'));

3.數據庫操作說明
指定表名,表前綴在Config/dbs.php中,下面的’tbl_’爲表前綴;

   'tables' => array(
        //通用路由
        '__default__' => array(
            'prefix' => 'tbl_',
            'key' => 'id',
            'map' => array(
                array('db' => 'db_demo'),
            ),
        ),
    ),

表後綴名在自己定義的mode層類中通過getTableName函數指定,在此爲user;
下面文件爲Demo/Mode/User.php

<?php

class Model_User extends PhalApi_Model_NotORM {

    public function getByUserId($userId) {
        return $this->getORM()
            ->select('*')
            ->where('id = ?', $userId)
            ->fetch();
    }

    public function getByUserIdWithCache($userId) {
        $key = 'userbaseinfo_' . $userId;
        $rs = DI()->cache->get($key);
        if ($rs === NULL) {
            $rs = $this->getByUserId($userId);
            DI()->cache->set($key, $rs, 600);
        }
        return $rs;
    }

    protected function getTableName($id) {
        return 'user';
    }
}

通過上述兩個步驟指定好需要訪問的table,上述訪問的表名爲’tbl_user’;

詳細操作參考w3c文檔

http://www.w3cschool.cn/phalapi/7h1s1tqu.html

4.查詢接口參數地址
服務器地址/Public/demo/checkApiParams.php?service=User.GetBaseInfo
5.關於連續兩次操作統一sqlmodel會出現報錯的情況,將操作錯開進行就不會報錯。1.讀取數據列表;2.根據讀取的id進行刪除;報錯
1.讀取數據列表;2.根據id刪除其他表數據;3.根據id刪除本表數據正常;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章