亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

禪道RestAPI開發

2019-11-14 14:38:04
字體:
來源:轉載
供稿:網友

在老的 php 系統中使用 PHP 5.3以后的庫

所謂老的系統,是指沒有使用PHP 5.3以上命名空間(namespace)特性編碼的系統。

但是,只要你的系統運行在 PHP 5.3及以上的環境,在你的老系統中,是可以使用這些基于新特性如命名空間編碼的庫或代碼的。

以前只是有潔癖不用而已。

比如,我是個工具控,想讓所用的禪道系統也像那些國際化開源 Issue 項目一樣有一套標準開放的 API - 禪道本身是有套 html、json 自適配模式可以當接口用的,可以用于其他客戶端或系統集成。這幾天在嘗試編寫的用于兼容 Redmine REST 風格接口的禪道 PMS API,就有意識的用了這種混合的寫法。

由于要兼容 Redmine 的 REST 風格,首先選用了 Slim 這個微服務框架,毫無疑問,它是要求運行環境>5.3的,但我總得復用禪道已有的代碼,這樣效率才高。

原理很簡單,就是一根反斜杠,或者兩根。

先用 composer 初始化了 slim 庫。

重點部位的代碼:

入口文件 index.php

require __DIR__ . '/vendor/autoload.php';require __DIR__ . '/inc/zentao/nb/Autoloader.php';/zentao/nb/Autoloader::register();$app = /zentao/core/application::app(dirname(ZTNB_ROOT)); //禪道的router$slim = new /Slim/Slim();$routes = require __DIR__ . '/data/config/routes.php';foreach ($routes as $method => $_routes) {    if ($_routes) {        foreach ($_routes as $rule => $map) {            $slim->$method($rule, '//zentao//nb//resource//' . $map);        }    }}$slim->run();

/zentao/core/Application 是獨立封裝的兼容禪道原來運行環境的類,由禪道中的 framework/router.class.php 改造而來,主要用于加載禪道中的相關資源如配置文件、模型等。精華應該在這里面,主要是加了一些“/”來讓微服務中能跑起來禪道運來的運行環境,并作為一個命名空間的橋梁可以在新的代碼中調用。

再看看資源類的父類 /zentao/nb/Resource,片段

<?phpnamespace zentao/nb;/** * 資源類 父類 */class Resource {    public function __construct() {            }    /**     * Load the model file of one module.     *      * @param   string      $methodName    The method name, if empty, use current module's name.     * @access  public     * @return  object|bool If no model file, return false. Else return the model object.     */    PRotected function loadModel($moduleName) {        $modelFile = /helper::setModelFile($moduleName);        /* If no model file, try load config. */        if (!/helper::import($modelFile)) {            $this->app->loadConfig($moduleName, false);            $this->app->loadLang($moduleName);            $this->dao = new dao();            return false;        }        $modelClass = class_exists('ext' . $moduleName . 'model') ? 'ext' . $moduleName . 'model' : $moduleName . 'model';        $modelClass = '//' . $modelClass;        if (!class_exists($modelClass))            $this->app->triggerError(" The model $modelClass not found", __FILE__, __LINE__, $exit = true);        $this->$moduleName = new $modelClass();        $this->dao = $this->$moduleName->dao;        return $this->$moduleName;    }    

這樣可以在資源類中調用禪道的 model 類。

還有另外一種用法,加載語言包:

<?phpnamespace zentao/nb/resource;use zentao/nb/enum/BugType;/** * 項目自行定義的問題分類 */class IssueCategory extends /zentao/nb/resource {        public function fetchAll($format = 'json') {        global $app;        $types = $app->loadLang('bug')->bug->typeList;        $issue_categories = array();        foreach ($types as $key => $name) {                        $issue_categories[] = array('id' => BugType::getIdByInterId($key), 'name' => $name);        }                echo json_encode(array('issue_categories' => $issue_categories));    }        /**     *   根據項目來取其中定義的分類     * @param int $projectId     * @param string $format     */    public function fetchAllByProjectId($projectId, $format = 'json') {        $model = $this->loadModel('project');        $project = $model->getById($projectId);//TODO 支持按項目代號查找        if (!$project) {            $this->responseNotExixted();        }                global $app;        $types = $app->loadLang('bug')->bug->typeList;        $issue_categories = array();        foreach ($types as $key => $name) {                        $issue_categories[] = array('id' => BugType::getIdByInterId($key), 'project' => array('id' => $projectId, 'name' => $project->name), 'name' => $name);        }                echo json_encode(array(            'issue_categories' => $issue_categories,            'total_count' => 2        ));    }}

基本項目結構如下:

項目結構

代碼:https://github.com/web3d/zentao-rest-api

項目只是初步成型,尚未完成。

這是在 NB 中的任務列表。

這是在 NB 中的任務詳情。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99精品久久久久久青青91| 欧美精品在线免费观看| 亚洲va久久久噜噜噜| 裸体女人亚洲精品一区| 国产精品免费久久久久影院| 国产日韩精品在线播放| 国产精品丝袜久久久久久不卡| 国产精品劲爆视频| 夜夜嗨av色综合久久久综合网| 久久久久久久久久婷婷| 亚洲午夜色婷婷在线| 亚洲人成电影网站色| 亚洲精品自产拍| 欧美日韩国产专区| 国产美女91呻吟求| 亚洲国产另类久久精品| 欧美老少配视频| 精品一区二区亚洲| 国产精品流白浆视频| 亚洲一区中文字幕在线观看| 欧美成人四级hd版| 亚洲精品美女久久| 国内精品400部情侣激情| 亚洲bt欧美bt日本bt| 中文字幕自拍vr一区二区三区| 精品国产拍在线观看| 91免费的视频在线播放| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲精品国产品国语在线| 久久在线免费观看视频| 国产精品影院在线观看| 国内偷自视频区视频综合| 国产精品高潮视频| 国产欧洲精品视频| 欧美裸体男粗大视频在线观看| 91国偷自产一区二区三区的观看方式| 欧美激情在线狂野欧美精品| 日本成熟性欧美| 久热在线中文字幕色999舞| 亚洲国语精品自产拍在线观看| 国产亚洲一级高清| 91精品国产91久久久久福利| 不卡毛片在线看| 欧美最顶级丰满的aⅴ艳星| 亚洲人成免费电影| 九九热精品视频| 欧美日韩xxx| 亚洲乱码一区av黑人高潮| 欧美日韩激情小视频| 亚洲日本欧美中文幕| 亚洲黄页视频免费观看| 久色乳综合思思在线视频| 国产视频丨精品|在线观看| 欧美视频免费在线观看| 欧美日本啪啪无遮挡网站| 最新91在线视频| 久久久久久久久久久成人| 亚洲第一中文字幕| 亚洲国产天堂久久国产91| 欧美日韩亚洲一区二区| 亚洲男人天堂2019| 91久久综合亚洲鲁鲁五月天| 中文在线资源观看视频网站免费不卡| 欧美寡妇偷汉性猛交| 欧美一区二区.| 国产精品极品美女粉嫩高清在线| 国产999在线观看| 国产精品aaa| 国产精品网红福利| 91在线精品播放| 欧美大片在线看| 亚洲欧美激情视频| 欧美一乱一性一交一视频| 欧美性猛交xxxx久久久| 国产欧美日韩中文| 91在线高清免费观看| 国产精品美腿一区在线看| 久久久综合av| 久久免费高清视频| 欧美在线免费看| 亚洲电影天堂av| 亚洲精品日韩久久久| 国产一区欧美二区三区| 超碰精品一区二区三区乱码| 亚洲人成亚洲人成在线观看| 亚洲国产精品悠悠久久琪琪| 91免费看片网站| 日韩亚洲精品视频| 日韩精品免费在线视频观看| 日韩va亚洲va欧洲va国产| 亚洲福利精品在线| 久久久噜久噜久久综合| 色噜噜狠狠狠综合曰曰曰88av| 国产精品久久久久av免费| 日韩欧美亚洲范冰冰与中字| 中文字幕亚洲综合| 久久夜色精品国产亚洲aⅴ| 91在线播放国产| 欧美日韩美女视频| 亚洲综合最新在线| 尤物tv国产一区| 一本大道香蕉久在线播放29| 欧美性猛交xxxx偷拍洗澡| 国产精品久久久久久网站| 亚洲肉体裸体xxxx137| 在线亚洲国产精品网| 亚洲毛片在线免费观看| 26uuu久久噜噜噜噜| 日本精品久久久久影院| 精品在线观看国产| 日韩在线视频二区| 亚洲二区在线播放视频| 久久亚洲精品小早川怜子66| 午夜精品久久久久久99热软件| 亚洲aa在线观看| 欧美日韩国产成人高清视频| 51色欧美片视频在线观看| 亚洲黄色有码视频| 日韩欧美中文免费| 午夜免费在线观看精品视频| 一个人www欧美| 亚洲精品一区av在线播放| 国产精品成人v| 欧美老女人性生活| 精品国产一区二区三区久久久狼| 日韩精品福利在线| 国产自产女人91一区在线观看| 欧美三级xxx| 欧美日韩国产在线| 国产精品精品久久久久久| 亚洲精品美女久久| 色阁综合伊人av| 国产成人精品最新| 亚洲男人天天操| 黑人巨大精品欧美一区二区免费| 91亚洲国产成人精品性色| 亚洲bt欧美bt日本bt| 国产美女高潮久久白浆| 日韩高清电影好看的电视剧电影| 欧美制服第一页| 亚洲国产精品女人久久久| 成人在线观看视频网站| 欧美有码在线观看视频| 国产中文字幕日韩| 欧美孕妇与黑人孕交| 高清在线视频日韩欧美| 欧美一级大片在线观看| 97久久精品人搡人人玩| 日韩精品在线观看一区二区| 国产精品一区二区久久久久| 久久av在线看| 91九色在线视频| 国产精品美女视频网站| 久久久精品影院| 日韩中文字幕网址| 欧美成人中文字幕| 欧美电影免费观看| 久热精品视频在线观看一区| 97免费在线视频| 在线精品国产欧美| 国产91久久婷婷一区二区| 精品亚洲精品福利线在观看| 国产偷亚洲偷欧美偷精品| 97视频免费观看|