烈火建站学院文档 如果你有时间和技术编写自己的内容管理系统,那这可能是最好的选择。我们现在一步步的教你建立自己的php内容管理系统(CMS)。
Peter Zeidman 翻译:Mint Li
如果你想要建立一个网站,那么你或许想要一套内容管理系统(CMS)棗一个使你的网站文章一目了然的工具。我在以前的文章中很少提到这些,但是许多的商业网站只有一个选择:那就是编写适合自己的一套系统。
为什么呢?好像自己编写的系统缺乏稳定性。恰恰相反,成百上千的人编写的系统,在成千上万的网站上成功的运行。但是一旦出了问题,你想找出问题出在那里将非常困难。如果你想自己定制或者修改的话,更将面临巨大的代码和模糊不清的文档的困扰。
自己编写CMS,在另一方面来将,会找到最适合自己需求的解决方案,最适合你的用户的需求,找出自己开发团队的问题所在。如果你有时间和精力自己编写的话,这是最好的选择。这就是为什么我反复提到的。
我们将使用php来编写,因为它是非常优秀的基于网络的开发语言。还将使用Mysql做为后台数据库,同时系统还将支持其他的数据库,比如PostgreSQL和SQLServer等。
那么我们的系统将能做什么呢?首先最重要的一点,能允许大量网站上的内容方便的收藏进自己的数据库中。当然一个成功的站点还包括许多其它重要特征,比如用户认证和文件管理等。
规划你的CMS
首先,我们要规划好我们的系统需要实现一些什么功能。在以后的文章中,我将用实例来说明一些使你的系统更完善的主要工具和组件。
第一步你需要编写一个你的CMS的基本需求,很显然,这需要根据你的需要来。
内容管理:系统最主要的功能,必须在数据库中保存象文档和新闻这样的内容,然后显示用户发出的请求。方便的编辑,添加删除修改的界面。
用户认证:我们可能想让限制某些站点对我们的访问,显然需要有管理员,能够在任何地方添加编辑和修改内容。你或许只想让一部分人或者部门能访问你的站点。
页面样式/模板:整个系统应该给人一种统一的风格,这就需要把业务处理和界面分开,这就需要把内容同显示样式分离开来。
面向对象OOP
php支持OOP。当我们把我们的系统组织的时候,会发现大量的代码会反复的用到,比如连接数据库,用户验证等等。保持代码的整齐和美观,我们把它们都放在classes文件中调用。当需要的时候我们再把对象实例化。所以类的想法可以在许多的场合使用。
例如,我们可以创建一个连接数据库的类,当我们需要查询数据库的时候我们把这个类例化,如果你对这个概念不是很清楚不要紧,当我们开始我们的代码是你会越来越了解的。这种方法可以把很复杂的系统分成小的和简单的模块,并且使事情简单,便于管理,修改和找出错误。
现在我们考虑一下如何把系统有效的组织起来。当然这都和你自己的需求有关,下面的图片是一个基本思路:
我们有四个主要的模块在系统中大量使用。分别是数据库的访问,用户上传文件,模板的读写,用户的登录与注销。所有类都是从systemObject类中继承而来。
虽然它们都放在systemObject类中但是这四个类都各自独立的。这种层次方法允许我们通过修改systemObject父类来改变所有的四个子类。另外,这种概念在我们开始具体实例的时候会更加清楚。在上面的图表中是一个基本的管理系统,每个功能都需要一个或者更多的页面来实现。