3

我知道成熟的内容管理系统 (CMS),例如 SugarCRM 和 TikiWiki……内容通常存储在数据库中……并通过与发布时相同的界面进行编辑。虽然我喜欢其中的许多功能,但该产品显然是针对企业范围内的使用,而不是面向公众的。

我想建立的是填补成熟 CMS 和手工编码定制网站之间空间的潜在替代方案。我喜欢将模块添加到我的 CMS 的方式...允许我快速引入新功能,并且我希望在公共 Web 内容系统中具有类似的功能。我知道我想要的模块包括经过审核的评论;网络表单到电子邮件网关;菜单/选项卡...将来,可能是映射或日记或 RSS 集成 - 等等。

在我的要求与 CMS 不同的地方,我不需要(或不希望)大多数内容可以通过主站点进行编辑......而且,不知何故,我确实希望能够预览更新将如何呈现给公众,而不是而不是进行实时更改。出于这些目的,与典型的 CMS 比较理想的是,演示是最重要的 - 并且胜过任何立即传播信息的愿望。

我意识到这是一个非常高级的问题......(欢迎提出额外标签的建议) - 我提到 PHP 只是因为 - 理想情况下 - 我正在寻找一个开源解决方案,而 PHP 部署是一个简单的选择。

我有哪些选择?

4

5 回答 5

1

这个问题可以引发宗教战争。由于您不是在问编码或编程问题,因此无法用事实来回答,只能用意见来回答。

根据我的经验,Symfony作为一个框架一直做得很好,遵循 MVC 架构。与任何框架一样,使用 Symfony 开发站点需要比使用 CMS 更多的承诺和更多的编程。

我看到你想要一个预览选项。虽然您可以使用 Symfony 自己完成此操作,但您可能希望利用Drupal中的该功能,使用它的工作流模块。当然,使用 Drupal 的角色,您可以使某些页面(或页面类型)无法修改。

有很多方法可以实现您的要求。你做的研究越多,你就越不可能不得不回溯和重写东西。

更新

学习 Symfony 的最佳资源可在Symfony.com上找到。访问文档部分。“ The Book ”是 All Things Symfony 的通用资源,我相信它是您能找到的最权威和最完整的资源。** 我觉得它清晰且写得很好。“ The Cookbook ” 包含特定类型应用程序的示例和策略,一旦您对 Symfony 使用得心应手,它就会更加有用。

**当您从 Symfony.com 选择书籍时,在页面右侧,您会看到一个选择框,上面写着“2.0 版本”。虽然 2.0 是 Symfony 的最新“版本”,但您可能希望将其更改为“主版本”,其中将包含对即将包含在即将发布的 2.1 版本中的功能的引用。Symfony 的发布往往与以前的版本有很大的不同,所以在你完成项目时为将要“发布”的东西进行开发会很好。

每本书都可以下载为PDF。Sensio Labs(Symfony 的创建者)的所有书籍均在 Creative Commons 下获得许可。

至于附加软件,Sensio 已经发布了许多附加软件(在 Symfony 中称为“捆绑软件”)。这些都记录在同一个站点上,但是第三方捆绑包(其中有很多)通常由其作者提供文档。您可以在http://knpbundles.com/找到一个开源包库。

至于 Drupal,我必须承认,这些天我在 Drupal 中实现的东西比 Symfony 更多。通过使用drush的命令行管理,保持最新状态非常容易,并且 Drupal 软件和模块维护人员在 IRC(在 FreeNode 上)中很友好且易于找到。Drupal 拥有大量的在线文档。实际上,这可能有点令人生畏,但事情往往井井有条。Drupal 上已经出版了许多书籍,可能会在http://drupal.org/books上列出……但我还没有准备好,所以我无法提出具体的建议。

在不了解您的要求的情况下,我只能推荐 Drupal 和 Symfony。:)

于 2012-08-29T12:12:04.643 回答
1

我不需要(或不希望)大多数内容都可以通过主站点进行编辑...

因此,您不需要(或想要)CMS。

你需要自己编写你想要的东西。但是,您可以从现有工具中获得帮助。有很多 API、框架、微框架……可以帮助你做这些事情。

首先,您是否接受使用 MVC 编写代码。如果没有,我知道的唯一工具是 CakePHP。

如果是:我注意到你想要:

我喜欢将模块添加到我的 CMS 的方式...允许我快速引入新功能,并且我希望在公共 Web 内容系统中具有类似的功能。

因此,具有简单的“即插即用”架构的框架会很有趣。我对 Symfony 的体验让我说它对你有好处。对于 Symfony,你已经编写了很多包。看看 KNPBundles 和 FriendOfSymfony Bundles。FOSUserBundle,KnpBlogBu​​ndle 是众所周知的但我也看到:

一个框架很可能是我想要的... Zend 是一种可能性——尽管它比我所希望的要低级。

所以我可以告诉你关于 Silex,一个基于 Symfony 核心的微框架(所以它是一个没有贪婪扩展的高级)和它的包架构。

我也听说过 hoa_project(因为我在 Twitter 上关注了它的创建者)但从未使用过它,所以我不能告诉你更多。

于 2012-08-29T12:17:02.717 回答
1

您列出的要求实际上是 CMS 的要求。如果我错了,请纠正我,但你想要:

  • 面向内容的模块(文章、评论、审核、网络表单等)
  • 发布前的所见即所得预览
  • 创建(或重用)模块的能力
  • 对表示层的高度控制。

你不想要的是:

  • 内容的“页内”编辑

有许多 PHP 内容管理系统可以满足这些要求;我个人熟悉CMS Made Simple,它几乎具备上述所有内容。Drupal 是一个功能更全面(也更复杂)的选项,它也提供了这个功能。Wordpress 是那些需要快速构建漂亮网站的人的最爱。

所有这些 CMS 解决方案都专注于制作面向公众的网站,而不是 Intranet 知识共享应用程序(它们在这方面毫无用处)。Drupal 提供了允许您管理内容发布工作流的工作流。他们提供的从头开始构建的关键是一种提供“所见即所得”内容预览的方式。

在我看来,这些选项的主要缺点是它们非常适合内容驱动的网站,但是如果你想将功能集成到应用程序中,或者修改布局,你必须通过想要控制用户的 CMS 层工作界面; 这可能会变得有点烦人。

于 2012-08-29T12:52:34.863 回答
0

我想添加 Yii (http://www.yiiframework.com/)。一个很棒的框架,具有各种减轻您的编程功能。预览功能不是板载的,但不难添加(http://www.yiiframework.com/doc/blog/1.0/en/post.create#implementing-preview-feature)。

于 2012-08-29T12:19:16.583 回答
0

您几乎是在描述CodeIgniter。请参阅此视频 演示并确定这是否是您需要的。CodeIgniter 不是 CMS,而是一个框架,您可以在其中轻松构建适合您确切需求的 CMS。

于 2012-08-29T11:58:11.820 回答