构建基于PHP的小说站点
2016-05-30薛巍
薛巍
摘 要:近些年,随着我国网民人数的不断增长,网络文学尤其是网络小说爱好者的基数相当可观,网络小说的消费市场潜力巨大,这些客观因素都给小说类站点带来了发展机遇。因此,论述基于PHP语言的小说站点的设计及实现的过程,其中涉及站点建设中的需求分析、设计、实现、测试等过程,并提出相关对策建议。
关键词:网站建设;PHP;数据库
中图分类号:F49 文献标志码:A 文章编号:1673-291X(2016)11-0178-02
站点建设中用到了PHP、MySQL、Apache、CentOS、Nginx、Zend Studio、MemCache、SVN等软件,利用上述软件在技术上的优势,可以搭建站点开发环境。对于站点开发者来说,核心技术是PHP+MySQL。鉴于PHP具有开发敏捷度高等特性,站点开发者很容易上手,所以在构建站点时首选PHP作为站点开发语言。MySQL是一种关系型数据库管理系统,它易学易用且性能稳定。SVN可以安装在开发团队局域网内的某台服务器中,用于管理不同版本的代码,以防代码覆盖。
首先是确立站点建设目标。站内以原创小说为主,推行付费阅读制,作品的前半部分可供读者免费阅读。作者上传作品后由站内编辑负责审核。经分析,站点的主要建设目标为:导航明晰,方便读者阅读。数据库支持大量数据录入,用户可轻松管理数据库中的数据。站点基于B/S架构,能够快速查询作者作品。读者按不同文学体裁进行阅读。会员在经付费后升级为VIP会员,可阅读VIP章节。站点模块层次清晰,页面间主体风格一致。站点投入运营后应当稳定、安全、可靠,方便站内员工管理。站点对客户端的要求并不高,客户端只需拥有普通PC、IE等浏览器即可阅读站内作品。用户需具备基本的上网常识,凭页面中的导航、分栏、链接、搜索工具、辅助阅读表单等即可轻松地访问站内资源,最后考虑法律可行性。法律可行性主要用来评估站点商业化运营后可能带来的影响,包括签约作者的作品在正式发布后的电子版权、作品防盗链、作品对社会公德的影响力,以及用户能否肯定站点的内容等。
站点按功能需求划分,初步分为读者、作者、站内管理人员三大类。第一大类是读者模块。主要的子功能模块有会员注册、会员登录身份验证、会员充值、会员第三方登录、作品搜索等。第二大类为作者模块主要为站内作品的作者提供各类服务。作者模块的子功能模块包括作者登录、作者活动、作者排行榜、作品得票、书评等。第三大类站务管理人员模块,它是站内员工管理站点的平台。站务管理人员模块主要由编辑后台、稿费结算、站务后台、统计后台等子模块构成。接下来分析站点的总体界面需求:站点可交互、页面风格统一、有较快的访问速度、链接清晰易操作。主页界面的使用需求为:主页上方设置作品搜索工具条,方便读者查找喜爱的作品;在主页左上方设计站点LOGO,LOGO中的文字简明扼要,能够解释站点的服务主旨;主页能提供站点的导航;页面布局明确,栏目内的信息言简意赅,以简约的界面效果吸引读者。
1.站点结构设计。(1)站点使用MVC(Model View Controller)即模型-视图-控制器。(2)使用Smarty模板技术。(3)站点使用B/S架构。(4)站点前台各模块含有以下功能结构。其一是会员管理:会员管理模块主要负责管理会员与站点发生的各类业务。其二是搜索书目:会员通过搜索书目模块可以查找站内的作品。其三是主线流程:主线流程即用户访问站点时的主要浏览方向。其四是作者活动:作者活动模块负责管理站点与作者发生的各类业务关系。站点的后台需要更多地考虑站点内的管理功能,方便站内员工的使用。而站点后台各模块包含以下功能结构:站务管理、阅读量管理、站内广告管理、财务管理、文字编辑、移动终端授、数据库逻辑结构设计。(5)分析各个角色的基本需求为:用户分为访客、注册用户、管理员、作者、编辑、财务人员。其中注册用户又分为普通读者、VIP读者。考虑未来站点功能的扩展,再将上述的功能、需求作进一步分析,初步设计出如下数据结构和数据项:用户信息类表、作者类信息表、充值表、编辑表、系统管理员表等。
2.用户对数据库的操作。通过分析站点的功能以及站点不同用户的需求推测出访客、普通读者、VIP读者、编辑、站务人员、作者、财务、系统管理员会操作数据库。站务人员会调用站务公告、管理方面的数据。财务人员则要求更新收入、支出、审核等方面的数据。系统管理员权限最大,能够维护库中的数据,也能更新站内公告,可以添加、删除与修改作品的相关信息,还可以删除作者、读者的账号,当然也可以更新管理员自己的信息。通过分析,站点的实体有:管理员、作者、作品、普通用户、VIP用户、书评、财务、编辑、站务、客服等,最后绘制出各实体之间的E-R关系。
3.数据库的物理设计。可将各实体及相互关系转变成数据库中的二维表以及二维表之间的关系。例如,用户信息表User。用户信息表保存与用户相关的诸多信息,包括普通用户与VIP用户的个人信息,如用户ID、登录名、密码、阅读币余额等信息。依据站点实际情况,绘制出N个二维表。数据库安全:为防止数据库服务器访问量过大,站点稳定性下降,减轻数据库负载,站点采取了下列措施。措施之一:启用MemCache减轻数据库服务器(DB)的负载。措施二:使用session共享技术,减少用户对服务器访问量的额外开支。措施三:在Web服务器前架设Nginx,采用轮询机制分散用户对服务器的访问负载,避免同一时刻用户仅对一台服务器进行访问。措施四:采用集群架构。一旦出现意外情况,主数据库服务器立即退出工作状态进入维护状态,而从数据库服务器立即转入正常运转状态。措施五:设计防SQL注入漏洞的方法。如普通用户禁用root权限。
1.站点前台的实现。站点前台页面是用户与站点产生交互的重要组成部分。它使读者能够浏览页面内容,提交表单,利用搜索工具查询站点后台的数据库资源。其一,主线流程。主线流程的设计需要考虑用户的访问习惯,包括主页、频道页、封面页、目录页等。其二,会员模块。此模块关系到用户获取站点资源,阅读作品的权利;此模块用到诸如上述的user表,包括新会员注册、第三方登录等。其三,用户消费模块:站内的电子消费是站点的核心服务内容之一,此模块在使用时会调用与充值相关的二维表,包括充值、计费表等。站内文章搜索:站内含有多部小说作品,用户使用站内搜索工具按不同的查询类型进行搜索,可以帮助用户迅速找到待读作品。作者模块主要负责管理与作者相关的行为。
2.站点后台的实现。站点后台负责管理站内的各类信息。站点正式发布后,后台管理部分可以直接在远程进行管理。站点运营团队中的财务、站务、编辑等人员也可以被视作为站点的管理员,其中系统管理员的权限最大。系统管理员登录后可管理后台的各个模块。系统管理员具有对所有用户的管理权。系统管理员对新注册站内员工进行资格审核,确认信息无误后,分配其相应的权限,从而使站内员工在登录成功后转入相应的模块,处理相关信息。站务的管理职能由系统管理员分配。站务管理员凭借自己的注册信息登录,进入站务后台后即可管理相关的事务。站务人员依托广告管理模块,可以合理地管理站内广告,此模块的出现也能满足各类市场广告的推广需求。财务管理模块在站点中亦十分重要,涉及站点经济业务的数据。编辑模块主要与作品、作者有关,作品审核、作品管理等与此模块有直接关系。
为了站点能安全、稳定地运行,站点必须进行各种测试,而诸多测试环节的第一步即为单元测试。单元测试主要测试每个模块的正确性,验证各个单元有无达到设计中的要求。另一项单元测试内容是代码测试。测试环节第二步为集成测试。在测试完各个模块之后,需检测模块之间的通信和接口能否正常工作。测试环节第三步为有效性测试。例如,以普通用户身份登录站点,应当标识为非VIP用户,借此判断该用户有无VIP章节的阅读权限。测试环节第四步为系统测试。站内的系统测试包括界面测试、访问强度测试、风险测试等。经反复测试后,多数环节能够通过且稳定运行,方可将站点投入试运营。
参考文献:
[1] 韩浩月.盛大文学:以版权为核心缔造文学产业链[J].中国版权,2013,(4):36-37.