开发我的自己的内容管理系统(CMS)

5
为什么?!当您阅读这个主题的标题时,这可能是您的第一个想法。
现在有各种开源CMS可供选择,以满足每个人的需求。我猜你是对的...事实上我非常同意。
但是这个主题是为像我这样天真和顽固的程序员准备的,他们真的很喜欢从头开始开发自己的CMS。但我应该从哪里开始,在规划这个CMS时我的重点应该是什么?
是否有任何好的教程、文章、书籍等,可以从头开始开发自己的CMS?
如果没有,也许你们中的一些人尝试过开发自己的CMS...如果是,请分享好的和不好的经验。
提前感谢。

我在kitgui.com上编写了自己的代码,它采用SAAS、基于Feed,并具有HTML5页面编辑等独特的方法。这可能会为您自己的开发提供一些思路,以便利用当前Web的功能,而不是过去Web的能力。 - King Friday
9个回答

10
如果你还没有对这些问题有答案,那么你可能选择了错误的项目类型。即使是基本的CMS也可能非常复杂,以下是几点需要考虑的内容:
  • 数据库如何设计
  • 允许用户在页面信息上多灵活自定义属性
  • 人们如何编辑页面数据
  • 如何查看页面的已发布版本
  • 如何支持版本控制
  • CMS应该针对哪种类型的网站
这些问题的回答将有助于决定数据库的设计、项目分解方式、如何处理人们想要创建页面等事项。
我更建议你开始查看开源CMS项目,了解它们是如何实现的,这会给你在打造自己的系统时提供更多的想法。否则,你很容易就会被各种选项淹没。 编辑 - 我只是想说,我参与过一个开源CMS(Umbraco),所以我很熟悉CMS需要做什么,我并不是在泼冷水。

8

是的,一个CMS可以很大,但它们可以从小开始,作为一个学习/有趣的项目,这非常不错,真正的卖点在于你可以自己使用它。如果我要建立另一个CMS,这里有几件事情我会/不会做。

1)不要完全依赖Xsl来创建你的内容——那看起来在2001年是一个合理的赌注,但我错了。

2)不要试图编写自己的Javascript/Flash富文本编辑控件——已经有太多好的控件存在了。

3)创造一个做一些独特事情的CMS——个人我喜欢一个可以让我创建漫画连环画的CMS——去找一个利基市场。

4)尽早制定一个好的服务器/数据库设计。

5)就是这样……


5

听起来很有教育意义。尽管其他人有所担忧,但如果您有兴趣了解需要在CMS中解决的问题,学习的最佳方法是构建自己的CMS,或者至少构建一些有趣的部分。我不会在自己的存储库中使用自制的CMS。但是,就像构建编译器和解释器帮助我更好地理解技术一样,同样适用于CMS。我不会使用我构建的编译器或解释器进行“真正的工作”,但我很高兴我构建了它们。


4
我开发了自己的内容管理系统,为自己和客户使用。除非完全必要,否则我不喜欢使用别人的程序。此外,由于我不断地开发新网站,使用自己的内容管理系统并每次进行微调更加方便。那么,如何做呢?只需要开始行动。人们会陷入困境,因为他们认为应该先想出完美的结构等等。放松一下,它不会是完美的。你可能会在以后做出一些改变。但是根据我的经验,犯错并加以修正仍然比等待完美解决方案的启示要快。所以坐下来,一页一页地写:添加页面,插入页面,更新页面...在这个过程中,你会意识到还需要什么。

将某些东西上线是个好主意。Web应用程序永远不会完美,为此而努力只会在你发布时拖延时间。 - GSto

3

要做到小步骤,先实现一个小功能,再添加另一层,然后再添加一个。如果您尝试先定义所有所需的功能,然后再实施它,那么您很可能会失败。要逐步实现。不要忘记定期进行代码审查和重构。


1

我会先解决一些所有CMS都需要的常见问题,然后再进行扩展。以下是其中几个:

  • 用户认证 - 您需要能够处理编辑内容的客户端,可能还有其他用户。
  • 管理面板 - 您的客户端将如何编辑内容?它需要具备灵活性以支持多种不同的设置。
  • 编辑页面 - 大多数网站都有一些简单的静态页面,您需要一种存储/编辑它们的方法。
  • 聚合内容 - 大多数网站都有一些类似新闻订阅或博客文章的内容。

如果您完成了以上所说的一切,将拥有一个简单的CMS的基础。


1

我建议你不要自己创建CMS。除非你有一个团队并且资金充足,否则编写、完善、测试、编写文档、进行可用性测试、在各种服务器上测试、市场推广所需的时间就不值得了。

此外,还有其他需要考虑的事情,如许可证、法律费用和系统更新。此外,你的买家如何相信一个独资企业将会提供更新服务。我在这个领域拥有丰富的经验,因为我在多年的积累中开发了自己的CMS,而像Joomla、WordPress和Drupal这样的CMS具有无法与之竞争的价格优势。


如果OP正在为自己的内部运营开发CMS,则您的许多评论都不适用。 - Rob

1
一个非常重要的问题是你想让它在服务器端还是客户端运行,这取决于你是更接近维基还是博客。另外,使用什么语言和什么规模?如果你想继续开发一段时间并学习新东西,那么这可能是一个不错的机会,但如果你只是想快速完成,就使用你熟悉的语言吧。

0

在公司介绍中出现类似于“我在2009年建立了自己的CMS”或者“使用我们自己的CMS…”这样的话,对于我来说可能是一个很大的负面标志,当我需要做出雇佣决策时。

也许不是你期望的答案,但如果我是你,我会考虑为现有的CMS开发一些真正新颖的模块。我个人赌注在Drupal上,但你可以找到很多其他选择。

在我看来,更好地利用时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接