从开发的角度来看,主要内容管理系统的优点/缺点是什么?

时间:2009-08-01 15:28:18

标签: php plugins content-management-system

我对使用CMS而不是从头构建网站感兴趣。但是,作为一名软件工程师,如果我要使用开源工具,我将全面使用它们,包括开发插件/扩展/模块的可能性,甚至可能贡献核心代码。 / p>

我目前正在关注WordPressDrupalJoomla!。它们似乎都具有我需要的功能,无论是作为核心功能还是插件。但是,我很好奇学习系统然后为它开发是多么困难。

有没有人有这方面的经验?当使用和开发WordPress,Drupal和/或Joomla!时,您的体验是什么样的?

4 个答案:

答案 0 :(得分:3)

我像瘟疫一样避免Joomla。扩展非常困难,特别是如果您的用例不是他们的开发人员专门设计CMS的用例之一。很棒,如果你想做一个小型的企业宣传册网站,但如果你想要大量定制...放弃它。大多数开发社区的付费游戏性质也是一种挫折。

WordPress非常专注于博客方向。如果这符合您的需求,请选择它 - 它是一个灵活,受到良好支持的系统。如果你正在寻找一个在CMS中更复杂的东西,那就去吧......

Drupal的。除了博客,我最喜欢的PHP CMS,请放下。像hook_nodeapihook_userhook_form_alter等功能使得它可以毫不费力地大量调整系统中几乎所有功能。如果我想用上传字段替换用户登录表单中的密码字段,并使用MD5()上传的文件来验证用户,我可以这样做 - 不破解核心代码,以及一些表格变更和验证码。前几次相当令人惊讶的是你做了一些像这样的坚果。

答案 1 :(得分:1)

我没有太多使用过Joomla而且从来没有真正需要在设计之外调整Wordpress但是已经广泛使用了Drupal。 Drupal似乎正在成为PHP CMS的标准,考虑到它有多大问题,我认为这是非常遗憾的。我不会试图告诉你为什么要使用它,或者不应该使用它,但这里有一些我觉得很讨厌的东西。

  1. 完全没有OOP。好吧,在Drupal 7中,他们最终使用抽象层进行了一些OOP,但整个社区仍然避免了OOP的整个概念,因为它适用于CMS作为一个整体。并且考虑到他们对模块和第三方代码的依赖,做一个体面的OOP设置将有助于保持代码更有条理。目前为了避免命名冲突,你需要在模块名称前加上所有函数和常量,这可能导致一些非常长的函数名称,这可能会导致一些非常长的代码行,这些代码可能会比使用$ node这样的东西更不易读取 - >父() - >父() - >标题;
  2. Drupal内容完全没有组织。当做一个信息量很大的网站时,你必须拥有组织良好的内容,而Drupal根本就不允许这样做。 Drupal的内容管理只是一个大型节点列表,您可以应用一些过滤器。有一些方法可以使用Drupal的分类系统和其他模块来设置关系,但我从来没有发现任何实际上使界面更容易导航并使管理模板上的内容变得容易。在工作中我创建了一个允许这样做的模块,但它需要将数周的开发时间转化为一个简单的功能,任何好的CMS都应该开箱即用。
  3. 管理界面绝对腐败。这个很自然地说它的自我,但安装Drupal的副本并点击。然后看看,Radiant界面(我知道Radiant是Rails,但我们在这里谈论UI)。管理员的良好用户界面的另一个例子是FrogCMS,一个Radiant的PHP端口。
  4. 没有ORM,绝对没有尝试拥有ORM,意味着您更喜欢编写大量SQL来获取所需的数据。虽然我编写自己的SQL通常没有问题但是当大多数优秀的框架和基于它们的CMS至少具有某种ORM供您使用时,它开始变得有点旧。即使它是一个拙劣的。
  5. Drupal喜欢使用非标准文件扩展名(.module,.info,.install,.inc等),因此您最好确保将htaccess和/或虚拟主机设置为不允许直接访问这些文件或您的所有源代码都将为全世界所见。
  6. 就我个人而言,如果维护人员允许社区为其做出贡献并允许其发展,我认为FrogCMS似乎是一个良好的开端。你需要做更多的编码,因为它没有开箱即用的大功能,并且没有像Drupal或Joomla这样的插件库,但从编码的角度来看,它设置得非常好,尽管是基本的, MVC实现将帮助您的代码更有条理,更易于维护。

答案 2 :(得分:0)

我只为Joomla开发了!并且一直是wordpress的用户,但是Joomla!如果你想完全改变布局,开发就太笨拙了。如果你知道代码的方式,编写一个插件或'组件'是相当容易的,但让它完全按照你想要的方式去做并不是那么容易,因为它喜欢强迫你使用它的MVC设计模式,我发现它太笨拙了

我见过Joomla!和Drupal代码库,我会说Joomla!的代码更清晰,更好地记录。它还大量使用MVC设计模式,根据您的偏好以及您想要使用它的方式,它可以是好的也可以是坏的。它在我见过的任何php项目中都有最广泛的OO编程使用。

我还没有为wordpress开发,但作为用户,自动更新是天赐之物!插件和主题可以通过wordpress本身的界面找到并安装,因此作为开发人员,您可以节省一些时间来尝试推广您的插件,因为它立即可供所有人使用。虽然重大修改可能会破坏其中一些,所以如果你想要修改它,我不会推荐它。

Joomla!的插件社区被大量单调化,但是有一个庞大的插件开发者社区。我不知道Drupal,大多数wordpress插件都是免费的。如果您计划使用第三方插件,那么这也是需要考虑的事情。

答案 3 :(得分:0)

这些年来,我开始讨厌PHP,因为我必须经常使用它,直到找到好的替代品,所以我问你的第一个问题是:它必须是PHP吗?

但是继续使用PHP我会添加以下内容:

  • 大多数人都喜欢Drupal,因为它的可扩展性......这很好,但它仍然存在一些设计问题......它非常强大和灵活,拥有庞大的用户群 - >很多插件,大社区要求咨询等。
  • 当谈到Joomla时,人们不得不说,在过去,这真的是一个完全混乱...但在版本1.5中,整个事情被重新设计,现在非常干净......我总是笑在joomla,但最近我与其他一些与我合作的开发人员进行了一次谈话,他非常相信我,它已成为一个开发人员友好的软件......而且,它太容易管理了...我知道没有其他CMS易于使用(并且是“真正的”CMS,而不是论坛或博客引擎)
  • 你可能想看看Vanilla CMS ......非常性感,仍然光滑而有力......
  • 使用基于良好的PHP框架的CMS ... typo3(Flow3(恕我直言,真的是最时髦的PHP框架)),基于symfony的东西(找不到任何东西,但this应该是一个好的开始),mambo(CakePHP)或者基于代码点火器的东西...你总是需要熟悉框架,但是a)这总是好的,b)如果框架是好的,应用很可能是好的和可扩展的,c)你自己在构建扩展时会有很高的生产力,因为框架会为你做很多事情......

最后,您可能想看看opensourcecms ...总是有帮助......

祝你好运,然后......;)

格尔茨

back2dos