基于ThinkPHP的生物观察小程序设计与实现
2024-07-09李艳伟洪运维
李艳伟 洪运维
关键词:ThinkPHP;生物观察;小程序;系统设计
0引言
任何观察对生物多样性科学的认知都有所贡献。目前,观察方式仍相对有限。为拓展公众生物观察方式,帮助用户以更科学、高效的方式记录生命之旅,了解自然,成为公民科学家,设计并实现一款由公众、科学志愿者及生物专家支持的在线共享生物观察小程序,通过自然观察记录的方式,完成生物多样性记录[1]。该小程序可供用户识别生物物种,科学家可借助它开展生物多样性项目与数据记录,教师利用它进行生物分类学教学和评估,公众使用它进行生物观察学习。结合不同用户对生物观察的需求,开发一个生物观察小程序具有重要意义。
1功能设计
通过整理不同用户对生物观察小程序的需求,对功能模块进行设计。该小程序须具备生物观察项目、生物观察记录、生物图鉴、统计、地图、发布等主要功能,如图1所示。
2开发技术
2.1ThinkPHP
生物观察小程序采用ThinkPHP开发服务端,为小程序端和管理端提供业务数据接口。ThinkPHP是一个广受欢迎的面向对象的开源PHP框架,以高效、简洁和安全为核心的设计理念,适用于各种规模的应用开发,是为了简化企业级应用和敏捷Web应用而开发的框架[2]。它采用MVC(Model—View—Controller)架构,使代码清晰易读,协作便捷;ThinkPHP框架技术具有丰富的内置类库和扩展类库,涵盖了常用的功能模块,如验证、过滤、分页、上传、缩略图、验证码、邮件、日志、调试等[3],内置ORM(Object—RelationalMapping)支持,可以方便地调用和使用,降低开发难度;同时提供多种缓存机制,提升应用性能。此外,ThinkPHP还具备丰富的扩展机制、安全机制、强大的路由支持、多样的库支持以及灵活的配置机制,使得开发人员能够更快速、更安全地开发出符合需求的应用程序。
2.2微信小程序
生物观察小程序端使用原生微信小程序框架开发。微信小程序框架系统分为两部分:逻辑层(AppService)和视图层(View)。微信小程序提供了视图层描述语言WXML和WXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑[4]。小程序开发框架的目标是通过尽可能简单、高效的方式体验原生App的服务,只要打开微信通过扫描二维码的方式就能够打开应用[5]。选用小程序作为客户端,能够快速传播分享生物观察信息。
2.3MySQL
生物观察小程序端选用MySQL数据库进行数据存储。MySQL数据库具有灵活多变的存储引擎选择、高效稳定的性能表现、严格的数据安全保障以及跨平台的兼容性等特点,在Web应用方面,MySQL是最好的关系数据库管理系统应用软件之一[6]。同时,其高度的可靠性、易用性、可扩展性,结合开源免费的成本效益和丰富的社区支持,使得MySQL成为众多开发者的数据库解决方案。
生物观察小程序选用ThinkPHP、MySQL组合开发服务端具备显著优势:ThinkPHP的灵活框架设计和高效开发流程结合MySQL的稳定性能与强大功能,既保证了生物观察小程序开发的快速性与便捷性,又确保了数据的安全性与处理速度,同时两者的可扩展性使得组合能轻松应对各种规模的应用需求。小程序服务端不仅包含用户身份认证、数据交互、数据安全、数据缓存等基本功能,还在这些功能上追求更高的性能和效率[7]。为生物观察小程序提供了一个开发稳定可靠的服务端。
3数据库设计
根据生物观察小程序功能设计需求,设计了20张数据表,以满足生物观察项目、生物观察记录、生物图鉴、统计、地图、发布等功能的业务数据要求。数据表清单如表1所示。主要的数据表结构如表2、表3、表4、表5、表6所示。
4主要功能实现
4.1生物图鉴数据
生物观察小程序建立图鉴分类数据库,方便用户学习和观察。在首页模块,点击图鉴栏目,用户可以查看图鉴分类,点击对应的图鉴分类,查看该图鉴分类下的物种。点击感兴趣的物种,进入物种详情页面,可以查看生物名称、科属、俗称、简介、分布等信息。同时支持图鉴数据搜索、纠错、收藏、分享微信好友。图鉴分类如图2所示,物种数据如图3所示。
4.2生物观察记录
用户通过添加照片、视频完成生物观察的记录。需要选择记录类型是否为共享还是私有,是否选择将记录添加到已加入的生物观察项目中,是否添加生物观察记录鉴定信息,是否为栽培圈养等,并实时记录当前生物观察的地理位置,提交后会对以上数据进行安全检测。点击生物观察记录详情页面,可查看当前记录的所在地图位置、地理坐标、所属项目、记录地点、观察时间等,还可以对记录进行收藏、评论和生物鉴定。管理用户生物观察记录数据。生物观察记录功能如图4、图5所示。
4.3生物观察项目
用户能够加入/发起自己喜欢的生物观察项目。项目可根据时间段、地点或内容等进行设立,例如潮间带生物、珊瑚、菜市场鱼类等。用户可以和项目成员分享记录。项目的成立有两种方式:一是通过地图选择,圈定地理范围和项目时间,在此范围内的观察记录都将进入该项目;二是通过扫码加入项目。项目类型包括团队、共享和私有三种。进入项目后,用户可以查看项目位置、成员、记录、统计数据、鉴定汇总分类等信息。同一项目可以创建多个队伍,每个队伍由不同用户组成。生物观察项目由创建者进行管理。生物观察项目功能如图6、图7所示。
4.4发现
点击小程序底部栏“发布”,用户可以查看或加入共享生物观察项目;查看共享生物观察记录;查看或评论用户发布的记录动态;可对共享的记录、动态进行评论、收藏和搜索、消息提示。发现功能如图8所示。
4.5统计
点击小程序底部栏“统计”,可以从时间上、鉴定类别、记录上查看当前用户的生物观察记录数据。统计功能如图9所示。
4.6个人中心(我的)
在个人中心,用户可以管理个人信息和认证信息;通过扫一扫二维码加入生物观察项目;管理自己发布的动态;管理收藏的动态和记录信息;可以对小程序的使用进行意见反馈;管理微信授权信息接口。
小程序全局设置登录态检测,如用户未登录,需要用户阅读并同意生物观察小程序服务协议和隐私协议,同意协议后,授权获取用户微信手机号,调用微信小程序自带的开放接口获取用户的微信头像、昵称等信息,完成登录。个人中心功能如图10所示。
5结束语
结合公众、科学志愿者和生物专家对生物观察的需求,采用ThinkPHP框架、微信小程序框架以及MySQL数据库等开发技术,设计并开发了生物观察小程序。该小程序实现了生物图鉴、生物观察记录、生物观察项目以及统计等功能。
小程序凭借其简单易用的特点,传播速度迅速。微信小程序提供的行为数据等分析工具,使专业机构可以更好地了解用户需求,提供更优质的服务[8]。该小程序有效地帮助用户观察和了解生物多样性,具有较高的实用价值。