基于XDCMS系统解析主流CMS系统原理

2013-04-29 05:11王林
无线互联科技 2013年6期
关键词:后台服务器变量

王林

摘 要:在互联网迅猛发展的今天,各种网站平台层出不穷,技术手段也不尽相同,如JSP、ASP、PHP等都占有相当的市场份额。对于PHP的开源免费高效率,更加受到了开发人员的青睐,而基于PHP的CMS(内容管理系统)也得长足的发展。本文主要针对XDCMS这个相对简单的内容管理系统来剖析CMS系统的原理,给PHP初学人员一些借鉴和思路。

1 引言

CMS(内容管理系统),主要实现新闻内容的发布、修改、删除等操作。主要模块分为:会员模块、内容管理模块、文件上传模块、无限级分类模块(用于栏目分类)和后台管理模块等几大模块。现如今主流CMS系统都使用smarty模版引擎技术,将变量动态分配到前台页面显示,省去了前端工程师不懂后台程序的烦恼,极大地提高了团队协作的效率。CMS系统还有一大特征就是使用了数据库,由于开源免费、执行效率高等特征,PHP主流搭配的都是Mysql关系型数据库,这也使得Linux、Apache、Mysql、PHP被称为LAMP黄金组合。

2 CMS之总体架构分析

我们首先进入XDcms系统文件来剖析一下它的目录结构:index.php是系统的主入口文件,admin为后台目录,cache为系统缓存文件目录,data为系统数据库目录,system为XDcms框架主目录,uploadfile为上传文件目录。系统在运行时(如在浏览器地址栏输入:http://localhost/xdcms回车进入),首先通过Apache服务器解析,判断系统的运行环境,如果系统中存在data/config.inc.php文件,则该系统已成功安装,否则系统进入install/index.php文件执行安装过程,安装过程主要是对系统所需要的环境进行配置的一个过程(如:数据库服务器主机地址、数据库账号、数据库密码、数据库名、数据库表前缀等),安装成功后,系统将自动生成相应的数据库和数据表结构,同时在data文件夹里也相应地生成config.inc.php文件,等到系统下次运行时,判断该文件已经存在,直接跳过安装,进入系统正式运行过程。在现在所有的CMS系统中,都产用了include或require函数来包含文件,当服务器进行解析时会将被包含的文件拿到当前文件包含的位置执行,这样做既方便了操作更大大地提高了代码的重用性。

3 CMS之关键技术分析

CMS之核心在于运用OOP(面向对象编程)的思想。在系统设计之初,程序员会将一些常用功能封装到类里面(如:基础类,数据库操作类,分页类,文件上传类等),需要用到某个功能模块时,通过实例化一个对象来完成所需的功能,在XDcms里系统的核心类文件都放在\system\libs文件夹下,所有的类文件都通过extends关键词来继承base.class.php文件里的基础类,通过继承来达到功能的继承。

4 CMS之数据库设计

数据库在现如今的网站开发中起着举足轻重的作用,它的设计成败直接关系到整个网站的运行效率。XDcms在运行之初建立了6张数据表:c_admin为管理员表、c_category为栏目表、c_config为网站配置表、c_content为网站内容表、c_model为模型表、c_model_field为模型字段列表。系统通过写在数据库操作类(mysql.class.php)中的方法来完成数据库的增(insert)、删(delete)、改(update)、查(select)操作,然后将得出的结果返回给变量,然后通过smarty模版引擎技术,将变量分配到前段变量,从而使得前台脚本能够动态获取后台数据库的数据。

5 CMS之session cookie机制

当你在浏览网站的时候,WEB服务器会先送一小小资料放在你的计算机上,Cookie会帮你都记录下来。当下次你再光临同一个网站,WEB服务器会根据上次留下的Cookie资料内容来判断使用者,送出特定的网页内容给你。Session与Cookie相似,只不过是一种服务器端的存储机制。

6 CMS之前台模板页面

要选择这个唯一的DIV标签,可以通过#header选择器来选择,然后就能单独定义样式了。所有的网页文件都应遵循W3C规范,这能大大提高浏览器的兼容性和执行效率。Javascript脚本在web2.0也起到了至关重要的作用,它能实现人机交互的智能化,如果你在填写一个身份证号时少填了一位,还需要等待漫长的后台判断过程的话,那你就OUT了。Javascript脚本可以在前段快速地帮你判断你填写的内容是否符合规范,极大地缩短了用户的等待时间。

7 总结

网站开发是一个复杂而精细的工程,这里以简单的XDcms为例来讲解CMS系统,给初学者一些借鉴和思路,许多不足之处还需我们共同研究推进。网络需要创新,需要不同的人去尝试探索,向着更深更宽的方向进行扩展研究,最终推进网络的不断发展和进步。

[参考文献]

[1]高洛峰.细说PHP[M].电子工业出版社.2009(1).10-01.

猜你喜欢
后台服务器变量
抓住不变量解题
也谈分离变量
通信控制服务器(CCS)维护终端的设计与实现
后台暗恋
得形忘意的服务器标准
前台、后台精彩花絮停不了
计算机网络安全服务器入侵与防御
SL(3,3n)和SU(3,3n)的第一Cartan不变量
以“后台”的名义节省电池用量
分离变量法:常见的通性通法