陳志云.聰
(嘉應學院地理科學與旅游學院,廣東 梅州 514015)
基于PHP的實驗室管理系統(tǒng)的設計與實現(xiàn)
陳志云.聰
(嘉應學院地理科學與旅游學院,廣東 梅州 514015)
高校實驗室管理工作實現(xiàn)信息化,可以提高高校教學管理水平和教學質(zhì)量。結(jié)合某院實驗室實際工作情況,基于目前流行的由Windows下的Apache、MySQL、PHP共同組成的集成Web開發(fā)平臺WAMP,搭建Web實驗室管理系統(tǒng),并采用當下普遍認可的高內(nèi)聚、低耦合的 MVC框架進行網(wǎng)頁設計與開發(fā),進行實驗室各功能模塊的開發(fā)。系統(tǒng)功能包括實驗室介紹、FTP管理、儀器設備管理、實驗教學管理、用戶管理、系統(tǒng)維護、退出等七個方面,以滿足實驗室日常管理信息化的需要。
實驗室管理系統(tǒng);MVC三層框架;MySQL;PHP
高校實驗室是教學科研的主戰(zhàn)場,是培養(yǎng)應用型、綜合技能型人才的重要場所,其管理水平直接關(guān)系到高校教學管理水平和教學質(zhì)量好壞。隨著計算機和網(wǎng)絡技術(shù)的發(fā)展,高校實驗室管理也從傳統(tǒng)的手工作業(yè)發(fā)展到信息化管理,單機版、網(wǎng)絡版等各種版本,基于不同平臺的實驗室管理系統(tǒng)大量涌現(xiàn),開發(fā)模式由早期的 C/S模式(即客戶機和服務器結(jié)構(gòu))發(fā)展到現(xiàn)在流行的B/S模式(即瀏覽器和服務器結(jié)構(gòu))。系統(tǒng)基于 B/S架構(gòu)設計,優(yōu)點是無需安裝客戶端,只需使用普通的網(wǎng)頁瀏覽器即可實現(xiàn)在任何時間、任何地點對實驗室的各類綜合信息進行管理和查詢[1]。有不少學者結(jié)合實際,采用不同的開發(fā)語言、數(shù)據(jù)庫等設計了實驗室管理系統(tǒng)[2-9]。本文擬結(jié)合某院實驗室實際工作情況,基于目前流行的由Windows下的Apache、MySQL、PHP共同組成的集成Web開發(fā)平臺WAMP,搭建Web實驗室管理系統(tǒng),并采用當下普遍認可的高內(nèi)聚、低耦合的MVC框架進行網(wǎng)站設計與開發(fā),進行實驗室各功能模塊的開發(fā),以滿足實驗室日常管理信息化的需要。
由于該系統(tǒng)主要用于院級實驗室的日常管理,例如解決紙質(zhì)文檔的查閱不便、不易保存,實驗室相關(guān)文檔的更新等等問題,且用戶以學院實驗室管理員、實驗教師和學生為主,因此在功能設計上主要考慮實驗室介紹、FTP管理、儀器設備管理、實驗教學管理、用戶管理、系統(tǒng)維護、退出等七個方面,結(jié)構(gòu)如圖1。
2.1 基本信息管理模塊
本模塊用于簡介實驗室基本情況,如實驗室的環(huán)境、人員等方面。主要包括GIS實驗室的地理信息系統(tǒng)實驗分室、測量實驗分室和遙感實驗分室的基本情況,GIS實驗室的師資隊伍情況,對實驗室的管理員信息進行詳細記錄。
圖1 實驗室管理系統(tǒng)功能結(jié)構(gòu)
2.2 FTP管理模塊
此模塊主要用于管理實驗室的FTP服務器。提供對服務器進行文件上傳操作,及時更新老師的實驗教學內(nèi)容、資料,對文件進行分類存儲管理、增刪改等操作。該模塊還能實現(xiàn)下載文件的功能,例如對文件及文件夾進行打包下載,提高下載速度。
2.3 儀器設備管理模塊
本模塊結(jié)合實驗室儀器設備管理工作實際,主要包含的功能有儀器設備基本信息、使用狀況一覽表(已借出、可預約等信息)、具體使用狀況(在一覽表里每條儀器使用信息鏈接一張詳細使用狀況表,包含借用人姓名、單位、聯(lián)系電話、指導老師、借出時間、應歸還時間、備注信息(儀器是否可以外借,是否需要指導老師現(xiàn)場指導使用,儀器使用過程中必須注意的內(nèi)容等))。
2.4 實驗教學管理模塊
該模塊為本實驗室管理系統(tǒng)的核心模塊。主要包括實驗教學大綱、實驗計劃、課表查詢(實驗室課表、教師課表、班級課表)、實驗報告、實驗成績等。教師根據(jù)實驗教學大綱的要求制訂實驗計劃,教師還可以通過該模塊批改學生的實驗報告,錄入實驗成績;本模塊還可以生成相應的統(tǒng)計報表,完成實驗室的工作量統(tǒng)計工作;對各班級的實驗安排進行管理等。
2.5 用戶管理模塊
本模塊里,管理員可以創(chuàng)建、 修改、 刪除用戶信息,以及管理用戶權(quán)限。用戶信息指各用戶在注冊使用本系統(tǒng)時輸入的相關(guān)信息,管理員有權(quán)利增加用戶類型,對信息不正確或者不全的用戶進行修改或刪除;在用戶權(quán)限管理子模塊,管理員通過設置實驗室管理員、實驗教師和學生不同的角色權(quán)限來賦予用戶組的相關(guān)權(quán)限,不同的用戶組擁有不同的功能操作和界面風格。
2.6 系統(tǒng)維護管理模塊
該模塊主要功能為數(shù)據(jù)的錄入與導出、系統(tǒng)日常運行記錄日志、功能設置。數(shù)據(jù)的錄入與導出負責對excel、txt等文件中數(shù)據(jù)的批量導入或?qū)С?;系統(tǒng)日志則負責記錄每天系統(tǒng)的運行狀況,以便對異常狀況進行分析處理;功能設置負責控制緩存的開啟與否,緩存的過期時間及清除緩存,數(shù)據(jù)的備份與還原等。
C/ S模式和B/S模式是目前信息系統(tǒng)的主要模式,后者被采用的頻率較高。本系統(tǒng)采用B/S模式,它是在Internet技術(shù)的發(fā)展、Web瀏覽器的興起基礎上,對C/S模式的一種變化或者改進。Web瀏覽器是客戶端最主要的應用軟件,通過Web來實現(xiàn)用戶工作界面,即在前端(Browser)實現(xiàn)較少部分的事務邏輯,而主要事務邏輯則在服務器端(Server),實現(xiàn)對數(shù)據(jù)進行分析和處理的工作,從而形成的架構(gòu)稱為三層結(jié)構(gòu)[10](如圖2)。B/S模式統(tǒng)一了客戶端,把系統(tǒng)功能實現(xiàn)的核心部分集中到服務器上,大大地簡化了系統(tǒng)的開發(fā)、維護和使用。換句話說,把數(shù)據(jù)庫安裝在服務器上,只要在客戶機上安裝一個瀏覽器(Browser),瀏覽器通過Web Server就可以同數(shù)據(jù)庫進行數(shù)據(jù)交互[11]。 這樣就可以簡化客戶端電腦載荷,同時也減輕系統(tǒng)維護與升級的成本和工作量,能適時反映實驗室狀況,學生的實驗進展情況,并可對學生學習情況進行分析,方便老師授課,并且此系統(tǒng)也適合于多人共同作業(yè),學生作業(yè)的上交及管理。
圖2 系統(tǒng)MVC架構(gòu)設計圖
3.1 數(shù)據(jù)庫選取
本系統(tǒng)采用當前流行的 MySQL數(shù)據(jù)庫和 PHP語言。MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),被廣泛地應用在Internet上的中小型網(wǎng)站中。與其他數(shù)據(jù)庫相比,MySQL擁有一個快速而且穩(wěn)定的基于線程的內(nèi)存分配系統(tǒng),可持續(xù)性好;支持查詢的SELECT和WHERE語句的各種運算符和函數(shù),并且可以在查詢中混用來自不同數(shù)據(jù)庫中的表,從而使得查詢變得快捷和方便;其核心程序的內(nèi)部結(jié)構(gòu)采用多線程編程,能夠靈活地為用戶提供相應的數(shù)據(jù)庫服務,而不過多的消耗系統(tǒng)資源。PHP是英文超級文本預處理語言(PHP: Hypertext Preprocessor)的縮寫。它是一種 HTML 內(nèi)嵌式的語言,類似于微軟的 ASP,都是一種在服務器端執(zhí)行的嵌入HTML文檔的腳本語言。它的語法比較獨特,是一種混合了C、Java、Perl 以及 PHP 自創(chuàng)新語法的語言。因為 PHP的風格與C語言相似,現(xiàn)在廣泛地被許多網(wǎng)站編程人員使用。由于PHP提供了一整套的MySQL函數(shù),對MySQL進行了全方面的支持,所以本文運用MySQL搭配PHP,能滿足實驗室管理系統(tǒng)對各個功能的基本需要。
3.2 數(shù)據(jù)庫訪問層(model)的設計及相關(guān)代碼
該層采用PHP內(nèi)置的擴展類PDO對數(shù)據(jù)庫進行訪問,對不同數(shù)據(jù)庫提供統(tǒng)一的數(shù)據(jù)庫抽象類 API,使用相同的方法名,極大的提高系統(tǒng)開發(fā)的可移植性,并且更高效地訪問數(shù)據(jù)庫。
代碼如下:
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ù)庫連接失敗!'.$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ù)據(jù)庫訪問類:
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è)務邏輯層(controller)的設計
業(yè)務邏輯層接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發(fā)送HTML表單時,業(yè)務邏輯層所要做的是接收請求,檢驗數(shù)據(jù)的真實性,并決定調(diào)用哪個模型構(gòu)件去處理請求,然后用確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。
3.4 視圖層(view)的設計
視圖是用戶看到并與之交互的界面。視圖層所涉及的是如何簡潔美觀地向用戶展示數(shù)據(jù),設計展示的格式,做好用戶體驗;所涉及的技術(shù)非常廣泛,包括 HTML、Ajax、JavaScript、Flash、CSS等,并且需要對圖片進行美工,使用PS圖像處理軟件進行網(wǎng)站LOGO、按鈕樣式等的設計。但需注意的是,不同瀏覽器之間的界面容易出現(xiàn)兼容性問題,因此,需要在不同網(wǎng)頁中進行檢測修改。
3.4.1 實驗室基本概況界面
此界面為實驗室的基本簡介,對實驗室的基本情況進行描述,如實驗室結(jié)構(gòu)、布局,硬件、軟件情況等等。該界面采用HTML和CSS技術(shù)相結(jié)合而設計成的靜態(tài)頁面,能夠快速作出響應。
3.4.2 儀器設備管理界面
該界面用于對儀器設備的增刪改操作。對實驗室進購的器材進行存檔,更新,并從記錄中統(tǒng)計出容易損壞或消耗的設備器材,為實驗室下一年度的實驗器材的進購作出分析和決策。
本系統(tǒng)采用 B/S結(jié)構(gòu)的設計模式,從方便使用者的角度來進行界面設計和系統(tǒng)設置,對實驗室的相關(guān)資源進行分類與整合,以提高實驗室管理效率。另外本系統(tǒng)采用 PHP 語言和 MySQL 數(shù)據(jù)庫設計,界面友好,通用性能較好,實用性較強,易于推廣,還可以運行在多種操作系統(tǒng)平臺上,符合當下實驗室管理模式的改進。不過,由于時間關(guān)系和作者水平有限,本系統(tǒng)尚有一些不足的地方,日后將繼續(xù)完善。
[1] 周洪雷.基于Web的學院信息管理系統(tǒng)的設計與實現(xiàn)[D].吉林:吉林大學, 2006.
[2] 任光輝,趙揚,彭志廣.基于網(wǎng)絡平臺的實驗室管理系統(tǒng)研究與實踐[J].實驗室科學,2009,(5):110-112.
[3] 姜雷.基于JAVA技術(shù)的實驗室管理系統(tǒng)的設計與實現(xiàn)[D].成都:電子科技大學,2012.
[4] 姜浩,呂志豐,黃賀,等.開放式實驗室管理系統(tǒng)的設計與實現(xiàn)[J].實驗室研究與探索,2010,(6):110-112.
[5] 張婷,汪淵,朱鵬.基于 B/S結(jié)構(gòu)的實驗室管理系統(tǒng)設計與實現(xiàn)[J].電腦開發(fā)與應用,2010,(8):16-17,20.
[6] 傅彬.基于PHP和Ajax的實驗室管理系統(tǒng)的設計與實現(xiàn)[D].上海:華東師范大學,2009.
[7] 姜雷.基于JAVA技術(shù)的實驗室管理系統(tǒng)的設計與實現(xiàn)[D].成都:電子科技大學,2012.
[8] 呂冠艷,李奮華.基于 B/S的課程網(wǎng)絡化教學平臺的設計與實現(xiàn)[J].計算機與現(xiàn)代化,2010,12:115-118.
[9] 曹明.基于 PHP技術(shù)的實驗室網(wǎng)站設計與實現(xiàn)[J].科技資訊,2009,(16):24-25.
[10] 楊順明.MVC模式與PHP構(gòu)建B/S應用[J].硅谷,2010,(19): 164-165.
[11] 仇玉斌,姜丹丹,張從善.基于 B/S模式的計算機機房管理系統(tǒng)設計[J].中國現(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
嘉應學院第十一批高等教育教學改革項目“實驗室在線管理系統(tǒng)設計與實現(xiàn)”。
陳志云(1983-),女,嘉應學院地理科學與旅游學院實驗師,碩士,研究方向為自然資源開發(fā)利用。