陈志云.聪
(嘉应学院地理科学与旅游学院,广东 梅州 514015)
基于PHP的实验室管理系统的设计与实现
陈志云.聪
(嘉应学院地理科学与旅游学院,广东 梅州 514015)
高校实验室管理工作实现信息化,可以提高高校教学管理水平和教学质量。结合某院实验室实际工作情况,基于目前流行的由Windows下的Apache、MySQL、PHP共同组成的集成Web开发平台WAMP,搭建Web实验室管理系统,并采用当下普遍认可的高内聚、低耦合的 MVC框架进行网页设计与开发,进行实验室各功能模块的开发。系统功能包括实验室介绍、FTP管理、仪器设备管理、实验教学管理、用户管理、系统维护、退出等七个方面,以满足实验室日常管理信息化的需要。
实验室管理系统;MVC三层框架;MySQL;PHP
高校实验室是教学科研的主战场,是培养应用型、综合技能型人才的重要场所,其管理水平直接关系到高校教学管理水平和教学质量好坏。随着计算机和网络技术的发展,高校实验室管理也从传统的手工作业发展到信息化管理,单机版、网络版等各种版本,基于不同平台的实验室管理系统大量涌现,开发模式由早期的 C/S模式(即客户机和服务器结构)发展到现在流行的B/S模式(即浏览器和服务器结构)。系统基于 B/S架构设计,优点是无需安装客户端,只需使用普通的网页浏览器即可实现在任何时间、任何地点对实验室的各类综合信息进行管理和查询[1]。有不少学者结合实际,采用不同的开发语言、数据库等设计了实验室管理系统[2-9]。本文拟结合某院实验室实际工作情况,基于目前流行的由Windows下的Apache、MySQL、PHP共同组成的集成Web开发平台WAMP,搭建Web实验室管理系统,并采用当下普遍认可的高内聚、低耦合的MVC框架进行网站设计与开发,进行实验室各功能模块的开发,以满足实验室日常管理信息化的需要。
由于该系统主要用于院级实验室的日常管理,例如解决纸质文档的查阅不便、不易保存,实验室相关文档的更新等等问题,且用户以学院实验室管理员、实验教师和学生为主,因此在功能设计上主要考虑实验室介绍、FTP管理、仪器设备管理、实验教学管理、用户管理、系统维护、退出等七个方面,结构如图1。
2.1 基本信息管理模块
本模块用于简介实验室基本情况,如实验室的环境、人员等方面。主要包括GIS实验室的地理信息系统实验分室、测量实验分室和遥感实验分室的基本情况,GIS实验室的师资队伍情况,对实验室的管理员信息进行详细记录。
图1 实验室管理系统功能结构
2.2 FTP管理模块
此模块主要用于管理实验室的FTP服务器。提供对服务器进行文件上传操作,及时更新老师的实验教学内容、资料,对文件进行分类存储管理、增删改等操作。该模块还能实现下载文件的功能,例如对文件及文件夹进行打包下载,提高下载速度。
2.3 仪器设备管理模块
本模块结合实验室仪器设备管理工作实际,主要包含的功能有仪器设备基本信息、使用状况一览表(已借出、可预约等信息)、具体使用状况(在一览表里每条仪器使用信息链接一张详细使用状况表,包含借用人姓名、单位、联系电话、指导老师、借出时间、应归还时间、备注信息(仪器是否可以外借,是否需要指导老师现场指导使用,仪器使用过程中必须注意的内容等))。
2.4 实验教学管理模块
该模块为本实验室管理系统的核心模块。主要包括实验教学大纲、实验计划、课表查询(实验室课表、教师课表、班级课表)、实验报告、实验成绩等。教师根据实验教学大纲的要求制订实验计划,教师还可以通过该模块批改学生的实验报告,录入实验成绩;本模块还可以生成相应的统计报表,完成实验室的工作量统计工作;对各班级的实验安排进行管理等。
2.5 用户管理模块
本模块里,管理员可以创建、 修改、 删除用户信息,以及管理用户权限。用户信息指各用户在注册使用本系统时输入的相关信息,管理员有权利增加用户类型,对信息不正确或者不全的用户进行修改或删除;在用户权限管理子模块,管理员通过设置实验室管理员、实验教师和学生不同的角色权限来赋予用户组的相关权限,不同的用户组拥有不同的功能操作和界面风格。
2.6 系统维护管理模块
该模块主要功能为数据的录入与导出、系统日常运行记录日志、功能设置。数据的录入与导出负责对excel、txt等文件中数据的批量导入或导出;系统日志则负责记录每天系统的运行状况,以便对异常状况进行分析处理;功能设置负责控制缓存的开启与否,缓存的过期时间及清除缓存,数据的备份与还原等。
C/ S模式和B/S模式是目前信息系统的主要模式,后者被采用的频率较高。本系统采用B/S模式,它是在Internet技术的发展、Web浏览器的兴起基础上,对C/S模式的一种变化或者改进。Web浏览器是客户端最主要的应用软件,通过Web来实现用户工作界面,即在前端(Browser)实现较少部分的事务逻辑,而主要事务逻辑则在服务器端(Server),实现对数据进行分析和处理的工作,从而形成的架构称为三层结构[10](如图2)。B/S模式统一了客户端,把系统功能实现的核心部分集中到服务器上,大大地简化了系统的开发、维护和使用。换句话说,把数据库安装在服务器上,只要在客户机上安装一个浏览器(Browser),浏览器通过Web Server就可以同数据库进行数据交互[11]。 这样就可以简化客户端电脑载荷,同时也减轻系统维护与升级的成本和工作量,能适时反映实验室状况,学生的实验进展情况,并可对学生学习情况进行分析,方便老师授课,并且此系统也适合于多人共同作业,学生作业的上交及管理。
图2 系统MVC架构设计图
3.1 数据库选取
本系统采用当前流行的 MySQL数据库和 PHP语言。MySQL是一个小型关系型数据库管理系统,被广泛地应用在Internet上的中小型网站中。与其他数据库相比,MySQL拥有一个快速而且稳定的基于线程的内存分配系统,可持续性好;支持查询的SELECT和WHERE语句的各种运算符和函数,并且可以在查询中混用来自不同数据库中的表,从而使得查询变得快捷和方便;其核心程序的内部结构采用多线程编程,能够灵活地为用户提供相应的数据库服务,而不过多的消耗系统资源。PHP是英文超级文本预处理语言(PHP: Hypertext Preprocessor)的缩写。它是一种 HTML 内嵌式的语言,类似于微软的 ASP,都是一种在服务器端执行的嵌入HTML文档的脚本语言。它的语法比较独特,是一种混合了C、Java、Perl 以及 PHP 自创新语法的语言。因为 PHP的风格与C语言相似,现在广泛地被许多网站编程人员使用。由于PHP提供了一整套的MySQL函数,对MySQL进行了全方面的支持,所以本文运用MySQL搭配PHP,能满足实验室管理系统对各个功能的基本需要。
3.2 数据库访问层(model)的设计及相关代码
该层采用PHP内置的扩展类PDO对数据库进行访问,对不同数据库提供统一的数据库抽象类 API,使用相同的方法名,极大的提高系统开发的可移植性,并且更高效地访问数据库。
代码如下:
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 '数据库连接失败!'.$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();
}
}
下面,以实验器材管理功能模块为例,定义了具体的数据库访问类:
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 业务逻辑层(controller)的设计
业务逻辑层接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,业务逻辑层所要做的是接收请求,检验数据的真实性,并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
3.4 视图层(view)的设计
视图是用户看到并与之交互的界面。视图层所涉及的是如何简洁美观地向用户展示数据,设计展示的格式,做好用户体验;所涉及的技术非常广泛,包括 HTML、Ajax、JavaScript、Flash、CSS等,并且需要对图片进行美工,使用PS图像处理软件进行网站LOGO、按钮样式等的设计。但需注意的是,不同浏览器之间的界面容易出现兼容性问题,因此,需要在不同网页中进行检测修改。
3.4.1 实验室基本概况界面
此界面为实验室的基本简介,对实验室的基本情况进行描述,如实验室结构、布局,硬件、软件情况等等。该界面采用HTML和CSS技术相结合而设计成的静态页面,能够快速作出响应。
3.4.2 仪器设备管理界面
该界面用于对仪器设备的增删改操作。对实验室进购的器材进行存档,更新,并从记录中统计出容易损坏或消耗的设备器材,为实验室下一年度的实验器材的进购作出分析和决策。
本系统采用 B/S结构的设计模式,从方便使用者的角度来进行界面设计和系统设置,对实验室的相关资源进行分类与整合,以提高实验室管理效率。另外本系统采用 PHP 语言和 MySQL 数据库设计,界面友好,通用性能较好,实用性较强,易于推广,还可以运行在多种操作系统平台上,符合当下实验室管理模式的改进。不过,由于时间关系和作者水平有限,本系统尚有一些不足的地方,日后将继续完善。
[1] 周洪雷.基于Web的学院信息管理系统的设计与实现[D].吉林:吉林大学, 2006.
[2] 任光辉,赵扬,彭志广.基于网络平台的实验室管理系统研究与实践[J].实验室科学,2009,(5):110-112.
[3] 姜雷.基于JAVA技术的实验室管理系统的设计与实现[D].成都:电子科技大学,2012.
[4] 姜浩,吕志丰,黄贺,等.开放式实验室管理系统的设计与实现[J].实验室研究与探索,2010,(6):110-112.
[5] 张婷,汪渊,朱鹏.基于 B/S结构的实验室管理系统设计与实现[J].电脑开发与应用,2010,(8):16-17,20.
[6] 傅彬.基于PHP和Ajax的实验室管理系统的设计与实现[D].上海:华东师范大学,2009.
[7] 姜雷.基于JAVA技术的实验室管理系统的设计与实现[D].成都:电子科技大学,2012.
[8] 吕冠艳,李奋华.基于 B/S的课程网络化教学平台的设计与实现[J].计算机与现代化,2010,12:115-118.
[9] 曹明.基于 PHP技术的实验室网站设计与实现[J].科技资讯,2009,(16):24-25.
[10] 杨顺明.MVC模式与PHP构建B/S应用[J].硅谷,2010,(19): 164-165.
[11] 仇玉斌,姜丹丹,张从善.基于 B/S模式的计算机机房管理系统设计[J].中国现代教育装备,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
嘉应学院第十一批高等教育教学改革项目“实验室在线管理系统设计与实现”。
陈志云(1983-),女,嘉应学院地理科学与旅游学院实验师,硕士,研究方向为自然资源开发利用。