陳志云.聰
(嘉應(yīng)學(xué)院地理科學(xué)與旅游學(xué)院,廣東 梅州 514015)
基于PHP的實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
陳志云.聰
(嘉應(yīng)學(xué)院地理科學(xué)與旅游學(xué)院,廣東 梅州 514015)
高校實(shí)驗(yàn)室管理工作實(shí)現(xiàn)信息化,可以提高高校教學(xué)管理水平和教學(xué)質(zhì)量。結(jié)合某院實(shí)驗(yàn)室實(shí)際工作情況,基于目前流行的由Windows下的Apache、MySQL、PHP共同組成的集成Web開發(fā)平臺(tái)WAMP,搭建Web實(shí)驗(yàn)室管理系統(tǒng),并采用當(dāng)下普遍認(rèn)可的高內(nèi)聚、低耦合的 MVC框架進(jìn)行網(wǎng)頁(yè)設(shè)計(jì)與開發(fā),進(jìn)行實(shí)驗(yàn)室各功能模塊的開發(fā)。系統(tǒng)功能包括實(shí)驗(yàn)室介紹、FTP管理、儀器設(shè)備管理、實(shí)驗(yàn)教學(xué)管理、用戶管理、系統(tǒng)維護(hù)、退出等七個(gè)方面,以滿足實(shí)驗(yàn)室日常管理信息化的需要。
實(shí)驗(yàn)室管理系統(tǒng);MVC三層框架;MySQL;PHP
高校實(shí)驗(yàn)室是教學(xué)科研的主戰(zhàn)場(chǎng),是培養(yǎng)應(yīng)用型、綜合技能型人才的重要場(chǎng)所,其管理水平直接關(guān)系到高校教學(xué)管理水平和教學(xué)質(zhì)量好壞。隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的發(fā)展,高校實(shí)驗(yàn)室管理也從傳統(tǒng)的手工作業(yè)發(fā)展到信息化管理,單機(jī)版、網(wǎng)絡(luò)版等各種版本,基于不同平臺(tái)的實(shí)驗(yàn)室管理系統(tǒng)大量涌現(xiàn),開發(fā)模式由早期的 C/S模式(即客戶機(jī)和服務(wù)器結(jié)構(gòu))發(fā)展到現(xiàn)在流行的B/S模式(即瀏覽器和服務(wù)器結(jié)構(gòu))。系統(tǒng)基于 B/S架構(gòu)設(shè)計(jì),優(yōu)點(diǎn)是無需安裝客戶端,只需使用普通的網(wǎng)頁(yè)瀏覽器即可實(shí)現(xiàn)在任何時(shí)間、任何地點(diǎn)對(duì)實(shí)驗(yàn)室的各類綜合信息進(jìn)行管理和查詢[1]。有不少學(xué)者結(jié)合實(shí)際,采用不同的開發(fā)語(yǔ)言、數(shù)據(jù)庫(kù)等設(shè)計(jì)了實(shí)驗(yàn)室管理系統(tǒng)[2-9]。本文擬結(jié)合某院實(shí)驗(yàn)室實(shí)際工作情況,基于目前流行的由Windows下的Apache、MySQL、PHP共同組成的集成Web開發(fā)平臺(tái)WAMP,搭建Web實(shí)驗(yàn)室管理系統(tǒng),并采用當(dāng)下普遍認(rèn)可的高內(nèi)聚、低耦合的MVC框架進(jìn)行網(wǎng)站設(shè)計(jì)與開發(fā),進(jìn)行實(shí)驗(yàn)室各功能模塊的開發(fā),以滿足實(shí)驗(yàn)室日常管理信息化的需要。
由于該系統(tǒng)主要用于院級(jí)實(shí)驗(yàn)室的日常管理,例如解決紙質(zhì)文檔的查閱不便、不易保存,實(shí)驗(yàn)室相關(guān)文檔的更新等等問題,且用戶以學(xué)院實(shí)驗(yàn)室管理員、實(shí)驗(yàn)教師和學(xué)生為主,因此在功能設(shè)計(jì)上主要考慮實(shí)驗(yàn)室介紹、FTP管理、儀器設(shè)備管理、實(shí)驗(yàn)教學(xué)管理、用戶管理、系統(tǒng)維護(hù)、退出等七個(gè)方面,結(jié)構(gòu)如圖1。
2.1 基本信息管理模塊
本模塊用于簡(jiǎn)介實(shí)驗(yàn)室基本情況,如實(shí)驗(yàn)室的環(huán)境、人員等方面。主要包括GIS實(shí)驗(yàn)室的地理信息系統(tǒng)實(shí)驗(yàn)分室、測(cè)量實(shí)驗(yàn)分室和遙感實(shí)驗(yàn)分室的基本情況,GIS實(shí)驗(yàn)室的師資隊(duì)伍情況,對(duì)實(shí)驗(yàn)室的管理員信息進(jìn)行詳細(xì)記錄。
圖1 實(shí)驗(yàn)室管理系統(tǒng)功能結(jié)構(gòu)
2.2 FTP管理模塊
此模塊主要用于管理實(shí)驗(yàn)室的FTP服務(wù)器。提供對(duì)服務(wù)器進(jìn)行文件上傳操作,及時(shí)更新老師的實(shí)驗(yàn)教學(xué)內(nèi)容、資料,對(duì)文件進(jìn)行分類存儲(chǔ)管理、增刪改等操作。該模塊還能實(shí)現(xiàn)下載文件的功能,例如對(duì)文件及文件夾進(jìn)行打包下載,提高下載速度。
2.3 儀器設(shè)備管理模塊
本模塊結(jié)合實(shí)驗(yàn)室儀器設(shè)備管理工作實(shí)際,主要包含的功能有儀器設(shè)備基本信息、使用狀況一覽表(已借出、可預(yù)約等信息)、具體使用狀況(在一覽表里每條儀器使用信息鏈接一張?jiān)敿?xì)使用狀況表,包含借用人姓名、單位、聯(lián)系電話、指導(dǎo)老師、借出時(shí)間、應(yīng)歸還時(shí)間、備注信息(儀器是否可以外借,是否需要指導(dǎo)老師現(xiàn)場(chǎng)指導(dǎo)使用,儀器使用過程中必須注意的內(nèi)容等))。
2.4 實(shí)驗(yàn)教學(xué)管理模塊
該模塊為本實(shí)驗(yàn)室管理系統(tǒng)的核心模塊。主要包括實(shí)驗(yàn)教學(xué)大綱、實(shí)驗(yàn)計(jì)劃、課表查詢(實(shí)驗(yàn)室課表、教師課表、班級(jí)課表)、實(shí)驗(yàn)報(bào)告、實(shí)驗(yàn)成績(jī)等。教師根據(jù)實(shí)驗(yàn)教學(xué)大綱的要求制訂實(shí)驗(yàn)計(jì)劃,教師還可以通過該模塊批改學(xué)生的實(shí)驗(yàn)報(bào)告,錄入實(shí)驗(yàn)成績(jī);本模塊還可以生成相應(yīng)的統(tǒng)計(jì)報(bào)表,完成實(shí)驗(yàn)室的工作量統(tǒng)計(jì)工作;對(duì)各班級(jí)的實(shí)驗(yàn)安排進(jìn)行管理等。
2.5 用戶管理模塊
本模塊里,管理員可以創(chuàng)建、 修改、 刪除用戶信息,以及管理用戶權(quán)限。用戶信息指各用戶在注冊(cè)使用本系統(tǒng)時(shí)輸入的相關(guān)信息,管理員有權(quán)利增加用戶類型,對(duì)信息不正確或者不全的用戶進(jìn)行修改或刪除;在用戶權(quán)限管理子模塊,管理員通過設(shè)置實(shí)驗(yàn)室管理員、實(shí)驗(yàn)教師和學(xué)生不同的角色權(quán)限來賦予用戶組的相關(guān)權(quán)限,不同的用戶組擁有不同的功能操作和界面風(fēng)格。
2.6 系統(tǒng)維護(hù)管理模塊
該模塊主要功能為數(shù)據(jù)的錄入與導(dǎo)出、系統(tǒng)日常運(yùn)行記錄日志、功能設(shè)置。數(shù)據(jù)的錄入與導(dǎo)出負(fù)責(zé)對(duì)excel、txt等文件中數(shù)據(jù)的批量導(dǎo)入或?qū)С觯幌到y(tǒng)日志則負(fù)責(zé)記錄每天系統(tǒng)的運(yùn)行狀況,以便對(duì)異常狀況進(jìn)行分析處理;功能設(shè)置負(fù)責(zé)控制緩存的開啟與否,緩存的過期時(shí)間及清除緩存,數(shù)據(jù)的備份與還原等。
C/ S模式和B/S模式是目前信息系統(tǒng)的主要模式,后者被采用的頻率較高。本系統(tǒng)采用B/S模式,它是在Internet技術(shù)的發(fā)展、Web瀏覽器的興起基礎(chǔ)上,對(duì)C/S模式的一種變化或者改進(jìn)。Web瀏覽器是客戶端最主要的應(yīng)用軟件,通過Web來實(shí)現(xiàn)用戶工作界面,即在前端(Browser)實(shí)現(xiàn)較少部分的事務(wù)邏輯,而主要事務(wù)邏輯則在服務(wù)器端(Server),實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行分析和處理的工作,從而形成的架構(gòu)稱為三層結(jié)構(gòu)[10](如圖2)。B/S模式統(tǒng)一了客戶端,把系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,大大地簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使用。換句話說,把數(shù)據(jù)庫(kù)安裝在服務(wù)器上,只要在客戶機(jī)上安裝一個(gè)瀏覽器(Browser),瀏覽器通過Web Server就可以同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互[11]。 這樣就可以簡(jiǎn)化客戶端電腦載荷,同時(shí)也減輕系統(tǒng)維護(hù)與升級(jí)的成本和工作量,能適時(shí)反映實(shí)驗(yàn)室狀況,學(xué)生的實(shí)驗(yàn)進(jìn)展情況,并可對(duì)學(xué)生學(xué)習(xí)情況進(jìn)行分析,方便老師授課,并且此系統(tǒng)也適合于多人共同作業(yè),學(xué)生作業(yè)的上交及管理。
圖2 系統(tǒng)MVC架構(gòu)設(shè)計(jì)圖
3.1 數(shù)據(jù)庫(kù)選取
本系統(tǒng)采用當(dāng)前流行的 MySQL數(shù)據(jù)庫(kù)和 PHP語(yǔ)言。MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。與其他數(shù)據(jù)庫(kù)相比,MySQL擁有一個(gè)快速而且穩(wěn)定的基于線程的內(nèi)存分配系統(tǒng),可持續(xù)性好;支持查詢的SELECT和WHERE語(yǔ)句的各種運(yùn)算符和函數(shù),并且可以在查詢中混用來自不同數(shù)據(jù)庫(kù)中的表,從而使得查詢變得快捷和方便;其核心程序的內(nèi)部結(jié)構(gòu)采用多線程編程,能夠靈活地為用戶提供相應(yīng)的數(shù)據(jù)庫(kù)服務(wù),而不過多的消耗系統(tǒng)資源。PHP是英文超級(jí)文本預(yù)處理語(yǔ)言(PHP: Hypertext Preprocessor)的縮寫。它是一種 HTML 內(nèi)嵌式的語(yǔ)言,類似于微軟的 ASP,都是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言。它的語(yǔ)法比較獨(dú)特,是一種混合了C、Java、Perl 以及 PHP 自創(chuàng)新語(yǔ)法的語(yǔ)言。因?yàn)?PHP的風(fēng)格與C語(yǔ)言相似,現(xiàn)在廣泛地被許多網(wǎng)站編程人員使用。由于PHP提供了一整套的MySQL函數(shù),對(duì)MySQL進(jìn)行了全方面的支持,所以本文運(yùn)用MySQL搭配PHP,能滿足實(shí)驗(yàn)室管理系統(tǒng)對(duì)各個(gè)功能的基本需要。
3.2 數(shù)據(jù)庫(kù)訪問層(model)的設(shè)計(jì)及相關(guān)代碼
該層采用PHP內(nèi)置的擴(kuò)展類PDO對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問,對(duì)不同數(shù)據(jù)庫(kù)提供統(tǒng)一的數(shù)據(jù)庫(kù)抽象類 API,使用相同的方法名,極大的提高系統(tǒng)開發(fā)的可移植性,并且更高效地訪問數(shù)據(jù)庫(kù)。
代碼如下:
class db_pdo{
private $dsn;
private $host;
private $dbname;
private $charset;
private $user;
private $pwd;
private $conn;
function __construct(){
try{
$this->conn.new PDO(PDO_DSN.":dbname=".PDO_NAME.";host=".PDO_HOS T.";charset=".PDO_CHARSET,PDO_USER,PDO_PWD);
}catch(PDOException $e){
echo '數(shù)據(jù)庫(kù)連接失敗!'.$e->getMessage();
exit;
}
}
public function __destruct(){
$this->conn.null;
}
function getonedata($sql,$param.array()){
if(empty($param)){
$param.array();
}
$res.$this->conn->prepare($sql);
$res->execute($param);
$row.$res->fetch(PDO::FETCH_ASSOC);
return $row;
}
function getalldata($sql,$param=array()){
$res.$this->conn->prepare($sql);
$res->execute($param);
$row.$res->fetchAll(PDO::FETCH_ASSOC);
return $row;
}
function data_nonselect($sql){
$res.$this->conn->prepare($sql);
$res->execute();
return $res->rowCount();
}
function modifydata($sql){
$res.$this->conn->exec($sql);
}
function deldata($sql){
$res.$this->conn->exec($sql);
}
function counts($table){
$res.$this->conn->query("select.from ".$table);
return $res->rowcount();
}
}
下面,以實(shí)驗(yàn)器材管理功能模塊為例,定義了具體的數(shù)據(jù)庫(kù)訪問類:
class equipment{
private $conn;
function __construct(){
$this->conn.new db_pdo();
}
function equipment_entry($tablename,$limit.''){
$sql."select.from ".$tablename." ".$limit;
$row.$this->conn->getalldata($sql);
return $row;
}
function equipment_add($tablename,$arr){
$date_key.implode(',',array_keys($arr));
$date_value.implode("','",array_values($arr));
$sql."insert into ".$tablename."($date_key) values('$date_value')";
$row.$this->conn->data_nonselect($sql);
return $row;
}
function data_del($tablename,$id,$data=''){
$sql.'delete from '.$tablename.' where id='.$id;
$row.$this->conn->data_nonselect($sql); return row;
}
function
equipment_update($tablename,$id,$arr=array()){
$str='';
$i.0;
while(list($key,$val)= each($arr)){
if(count($arr)-1 == $i){
$str.="$key='$val'";
continue;
}
$str.="$key='$val',";
$i++;
}
$sql."update $tablename set $str where id=$id";
$row.$this->conn->modifydata($sql);
}
}
3.3 業(yè)務(wù)邏輯層(controller)的設(shè)計(jì)
業(yè)務(wù)邏輯層接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),業(yè)務(wù)邏輯層所要做的是接收請(qǐng)求,檢驗(yàn)數(shù)據(jù)的真實(shí)性,并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后用確定用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。
3.4 視圖層(view)的設(shè)計(jì)
視圖是用戶看到并與之交互的界面。視圖層所涉及的是如何簡(jiǎn)潔美觀地向用戶展示數(shù)據(jù),設(shè)計(jì)展示的格式,做好用戶體驗(yàn);所涉及的技術(shù)非常廣泛,包括 HTML、Ajax、JavaScript、Flash、CSS等,并且需要對(duì)圖片進(jìn)行美工,使用PS圖像處理軟件進(jìn)行網(wǎng)站LOGO、按鈕樣式等的設(shè)計(jì)。但需注意的是,不同瀏覽器之間的界面容易出現(xiàn)兼容性問題,因此,需要在不同網(wǎng)頁(yè)中進(jìn)行檢測(cè)修改。
3.4.1 實(shí)驗(yàn)室基本概況界面
此界面為實(shí)驗(yàn)室的基本簡(jiǎn)介,對(duì)實(shí)驗(yàn)室的基本情況進(jìn)行描述,如實(shí)驗(yàn)室結(jié)構(gòu)、布局,硬件、軟件情況等等。該界面采用HTML和CSS技術(shù)相結(jié)合而設(shè)計(jì)成的靜態(tài)頁(yè)面,能夠快速作出響應(yīng)。
3.4.2 儀器設(shè)備管理界面
該界面用于對(duì)儀器設(shè)備的增刪改操作。對(duì)實(shí)驗(yàn)室進(jìn)購(gòu)的器材進(jìn)行存檔,更新,并從記錄中統(tǒng)計(jì)出容易損壞或消耗的設(shè)備器材,為實(shí)驗(yàn)室下一年度的實(shí)驗(yàn)器材的進(jìn)購(gòu)作出分析和決策。
本系統(tǒng)采用 B/S結(jié)構(gòu)的設(shè)計(jì)模式,從方便使用者的角度來進(jìn)行界面設(shè)計(jì)和系統(tǒng)設(shè)置,對(duì)實(shí)驗(yàn)室的相關(guān)資源進(jìn)行分類與整合,以提高實(shí)驗(yàn)室管理效率。另外本系統(tǒng)采用 PHP 語(yǔ)言和 MySQL 數(shù)據(jù)庫(kù)設(shè)計(jì),界面友好,通用性能較好,實(shí)用性較強(qiáng),易于推廣,還可以運(yùn)行在多種操作系統(tǒng)平臺(tái)上,符合當(dāng)下實(shí)驗(yàn)室管理模式的改進(jìn)。不過,由于時(shí)間關(guān)系和作者水平有限,本系統(tǒng)尚有一些不足的地方,日后將繼續(xù)完善。
[1] 周洪雷.基于Web的學(xué)院信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林:吉林大學(xué), 2006.
[2] 任光輝,趙揚(yáng),彭志廣.基于網(wǎng)絡(luò)平臺(tái)的實(shí)驗(yàn)室管理系統(tǒng)研究與實(shí)踐[J].實(shí)驗(yàn)室科學(xué),2009,(5):110-112.
[3] 姜雷.基于JAVA技術(shù)的實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[4] 姜浩,呂志豐,黃賀,等.開放式實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2010,(6):110-112.
[5] 張婷,汪淵,朱鵬.基于 B/S結(jié)構(gòu)的實(shí)驗(yàn)室管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦開發(fā)與應(yīng)用,2010,(8):16-17,20.
[6] 傅彬.基于PHP和Ajax的實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:華東師范大學(xué),2009.
[7] 姜雷.基于JAVA技術(shù)的實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[8] 呂冠艷,李?yuàn)^華.基于 B/S的課程網(wǎng)絡(luò)化教學(xué)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2010,12:115-118.
[9] 曹明.基于 PHP技術(shù)的實(shí)驗(yàn)室網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)[J].科技資訊,2009,(16):24-25.
[10] 楊順明.MVC模式與PHP構(gòu)建B/S應(yīng)用[J].硅谷,2010,(19): 164-165.
[11] 仇玉斌,姜丹丹,張從善.基于 B/S模式的計(jì)算機(jī)機(jī)房管理系統(tǒng)設(shè)計(jì)[J].中國(guó)現(xiàn)代教育裝備,2007, (10):97-99.
The design and implementation of lab management system based on PHP
University laboratory management informatization, can improve the level of teaching management and teaching quality. Combining the condition of practical work in.hospital laboratory, the authors designed.web laboratory management system, based on WAMP, the current epidemic Web development platform of Windows, constituted by Apache and MySQL and PHP. And they used current generally recognized high cohesion and low coupling MVC framework for web, to design and develop the functional modules of laboratory. The system features included seven aspects, such as laboratory introduction, FTP management, equipment management, experimental teaching management, user management, system maintenance and quit, to satisfy daily laboratory management information needs.
Laboratory management system; MVC; MySQL; PHP
G48...
A....
1008-1151(2015)08-0178-04
2015-07-11
嘉應(yīng)學(xué)院第十一批高等教育教學(xué)改革項(xiàng)目“實(shí)驗(yàn)室在線管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)”。
陳志云(1983-),女,嘉應(yīng)學(xué)院地理科學(xué)與旅游學(xué)院實(shí)驗(yàn)師,碩士,研究方向?yàn)樽匀毁Y源開發(fā)利用。