禪道 Rest API 開發

2021-09-07 04:01:36 字數 2625 閱讀 2076

所謂老的系統,是指沒有使用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();

$slim = new \slim\slim();

$routes = require __dir__ . '/data/config/routes.php';

foreach ($routes as $method => $_routes)

}}$slim->run();

再看看資源類的父類 \zentao\nb\resource,片段

<?php 

namespace zentao\nb;

/** * 資源類 父類

*/class resource

/*** 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)

$modelclass = class_exists('ext' . $modulename . 'model') ? 'ext' . $modulename . 'model' : $modulename . 'model';

$modelclass = '\\' . $modelclass;

if (!class_exists($modelclass))

$this->$modulename = new $modelclass();

$this->dao = $this->$modulename->dao;

return $this->$modulename;

}

這樣可以在資源類中呼叫禪道的 model 類。

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

<?php 

namespace zentao\nb\resource;

use zentao\nb\enum\bugtype;

/** * 專案自行定義的問題分類

*/class issuecategory extends \zentao\nb\resource

echo json_encode(array('issue_categories' => $issue_categories));

}/**

* 根據專案來取其中定義的分類

* @param int $projectid

* @param string $format

*/public function fetchallbyprojectid($projectid, $format = 'json')

$issue_categories = array();

foreach ($types as $key => $name)

echo json_encode(array(

'issue_categories' => $issue_categories,

'total_count' => 2

));}

}

基本專案結構如下:

**:專案只是初步成型,尚未完成。

這是在 nb 中的任務列表。

這是在 nb 中的任務詳情。

禪道 Rest API 開發

所謂老的系統,是指沒有使用php 5.3以上命名空間 namespace 特性編碼的系統。但是,只要你的系統執行在 php 5.3及以上的環境,在你的老系統中,是可以使用這些基於新特性如命名空間編碼的庫或 的。以前只是有潔癖不用而已。比如,我是個工具控,想讓所用的禪道系統也像那些國際化開源 issu...

禪道開源版使用者手冊 禪道開源版開發團隊手冊

1 參加專案計畫會議,分解任務 專案團隊成員參加計畫會議,並積極參與分解任務。按照scrum的流程,專案團隊成員要參加產品的計畫會議和專案的任務分解。在參加產品計畫會議的時候,應當充分理解需求,並發表自己的意見,以確保自己對每乙個需求理解都是正確的。專案計畫會議的主要任務是對需求進行任務分解,團隊成...

api 二次 開發 禪道 測試工具Jira和禪道

jira和禪道是兩款做專案管理的軟體,功能豐富,涵蓋面廣。jira主要功能 scrum板 敏捷團隊可專注於盡可能快速地交付迭代和增量價值。看板 全面了解後續工作事宜,從而讓您可以在最少的週期時間內持續交付最多的輸出 路線圖 描繪專案整體概況 敏捷報告 借助數十種開箱即用的報告,團隊可以實時了解成員在...