用于构建轻量级面向公众的网站的工具箱/框架

时间:2012-08-27 11:37:36

标签: php web-applications web

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

我想建立的是潜在的替代方案,填补了成熟的CMS和手工编码的定制网站之间的空间。我喜欢我可以将模块添加到CMS的方式...允许我快速引入新功能,并且我想在公共网络内容的系统中使用类似的功能。我知道的模块我想要包含评论的评论;网络表单到电子邮件网关;菜单/标签......将来,可能是地图或日记或RSS整合等等。

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

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

我有什么选择?

5 个答案:

答案 0 :(得分:1)

这个问题可以引发宗教战争。由于您没有提出编码或编程问题,因此无法通过事实回答问题。

根据我的经验,Symfony在MVC架构之后总是作为一个框架做得很好。与任何框架一样,使用Symfony开发网站需要比CMS更高的承诺和更多的编程。

我看到你想要一个预览选项。虽然您可以自己使用Symfony,但您可能希望使用Drupal中的workflow module来利用其功能。当然,使用Drupal的角色,您可以使某些页面(或页面类型)无法进行修改。

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

<强>更新

学习Symfony的最佳资源可在Symfony.com找到。访问Documentation部分。 &#34; The Book &#34;是All Things Symfony的一般资源,我相信它是您能找到的最权威,最完整的资源。**我发现它清晰而且写得很好。 &#34; The Cookbook &#34;包含特定类型应用程序的示例和策略,一旦您熟悉Symfony,它就会更有用。

** 当你从Symfony.com选择书籍时,在页面的右侧,你会看到一个选择框,上面写着&#34; 2.0版本&#34; 。虽然2.0是最新的&#34;发布&#34;对于Symfony,您可能希望将其更改为&#34; master version&#34;,其中将包含对即将发布的2.1版本中包含的功能的引用。 Symfony版本与以前的版本有很大的不同,因此开发适用于将发布的内容将是很好的。当你完成项目时。

每本书都可以PDF格式下载。 Sensio Labs(Symfony的创建者)的所有书籍都是根据知识共享许可的。

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

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

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

答案 1 :(得分:1)

  

我不需要(或想要)大部分内容可通过主网站进行编辑......

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

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

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

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

  

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

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

  

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

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

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

答案 2 :(得分:1)

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

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

你不想要的是:

  • “页内”编辑内容

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

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

我认为这些选项的主要缺点是它们非常适合内容驱动的网站,但如果您想将功能集成到应用程序中,或者修改布局,您必须完成想要的CMS层。控制用户界面;这可能会变得有点无聊。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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