【问题标题】:Toolbox/framework to construct lightweight public-facing web site [closed]构建面向公众的轻量级网站的工具箱/框架[关闭]
【发布时间】:2012-08-21 21:29:59
【问题描述】:

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

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

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

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

我有什么选择?

【问题讨论】:

  • 听起来你实际上是在寻找一个框架,而不是一个 CMS,也许 Zend 是你可能想要研究的一个
  • 您正在寻找一个框架,您可以使用 Zend 或 codeigniter,但有一个学习曲线,或者您可以在一个小时内创建自己的小型轻量级 MVC 框架,前提是您有一些 PHP 知识
  • 一个框架很可能是我想要的...... Zend 是一种可能性——尽管它比我所希望的要低级。回想起来,我可以在每次修改网站时在网站上线之前预览这个想法是一个关键要求……我真的很喜欢我选择的任何方法来明确支持这一点。我有能力,但我想避免自己动手 - 如果可能的话...... :)
  • 我不知道你是否想要一个完整的框架,比如 Zend、Symfony 或 CodeIgniter。但似乎您只想要一种高级别的 API。也许像 Silex 这样的“微框架”就是您想要的。也许你只是想要一些基于“捆绑”概念的东西,比如 Symfony2,但“默认提供”的功能较少。??

标签: php web-applications web


【解决方案1】:

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

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

我知道你想要一个预览选项。虽然您可以使用 Symfony 自己做到这一点,但您可能希望利用 Drupal 中的该功能,而不是使用它的 workflow module。当然,使用 Drupal 的角色,您可以使某些页面(或页面类型)无法修改。

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

更新

Symfony.com 上可以找到学习 Symfony 的最佳资源。访问Documentation 部分。 “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。 :)

【讨论】:

  • 这是因为有很多潜在的策略我选择发布这个问题......我有兴趣建立这些选项(我自己很少参与 GUI/Web 开发 - 我倾向于专注于系统级开发。)我觉得我需要一个介于网络框架和最终用户 CMS 之间的东西。我知道 Symphony,但除非有大量类似 CPAN 的模块库......我不确定它是否适合这个项目。我将再次研究 Drupal……尤其是工作流模块……
  • 对于 Symfony,你已经编写了很多包。看看 KNPBundles 和 FriendOfSymfony Bundles。 FOSUserBundle、KnpBlogBu​​ndle 众所周知。
  • Symphony 看起来越来越有前途了。你能推荐一本关于它的好书吗?我能找到的只是“Symfony 权威指南”——但它是 2007 年 1 月发布的——所以,我想,它可能已经过时了?
  • 在我的回答中添加了一些参考书目。
【解决方案2】:

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

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

你不想要的是:

  • “页内”编辑内容

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

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

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

【讨论】:

  • 本质上,我正在寻找一个内容发布系统——而不是一个内容管理系统。我(几乎完全)关注面向公众的访问......这将(主要)是只读的并支持匿名访问。对我来说,CMS 系统似乎专注于管理组织内的信息——我想管理组织发布的信息……我很高兴内容本身由单独的系统管理。
  • 我不认为您在问题中提到的两个示例是经典的 CMS 解决方案 - 它们肯定不适合构建面向公众的网站。我仍然不太明白为什么 Drupal、CMSMS 和 Wordpress 等工具不能满足您的要求...
【解决方案3】:

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

所以您不需要(或想要)CMS。

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

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

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

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

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

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

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

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

【讨论】:

  • 我不是通过编写 MVC 代码来分阶段进行的——作为一个架构,这很好......但我真的想要可以粘合在一起的高级高质量组件。 Silex 听起来很有趣——尽管它似乎并不专注于面向用户的高级组件……我正在尝试了解更多关于 Symfony“捆绑包”的信息……
  • Symfony CMF 看起来很有希望 - github.com/symfony-cmf/cmf-sandbox - 我唯一的保留是我想确保在上线之前对面向公众的网站所做的更改进行审查......我喜欢现场的外观和感觉沙盒演示。
【解决方案4】:

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

    • Code igniter 看起来是一个功能强大的框架 - 但是,就像 Zend 一样,它比我希望的要低……我想为“博客条目”提供标准块; '主持,仅批准,cmets'; '联系网站表格' - 等等。当然,我可以自己写 - 但这感觉就像重新发明轮子。我想要相当主流概念的巧妙实现......并且能够自己将它们粘合在一起......只有在我需要真正原创的行为时才编写代码来管理数据库/html/javascript生成。
    • 我明白了。我会说 CodeIgniter 比 Zend 高一点,但是是的,你必须重新发明自己的轮子!我提到 CodeIgniter 是因为您可能找不到任何具有您需要的独特功能的 CMS,但 CodeIgniter 将帮助您轻松编写所需的代码。更重要的是,它将非常易于维护,因此您可以在将来需要时轻松添加或更改功能。
    猜你喜欢
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2011-02-03
    • 2010-10-10
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多