所謂老的系統,是指沒有使用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板 敏捷團隊可專注於盡可能快速地交付迭代和增量價值。看板 全面了解後續工作事宜,從而讓您可以在最少的週期時間內持續交付最多的輸出 路線圖 描繪專案整體概況 敏捷報告 借助數十種開箱即用的報告,團隊可以實時了解成員在...