php - 什么时候使用 CMS 构建网站是好主意还是坏主意

标签 php web-applications content-management-system

我即将开始一个大型网络应用程序项目。这个项目的前提是它将成为一个聚合内容的目标网站(内容将通过独立运行的爬虫/机器人收集,并以设定的时间间隔来索引已批准我们技术的合作伙伴提供的数据)并将此内容显示给用户。用户可以通过对内容进行排名来定制平台向他们展示的内容,试图为平台提供数据以确定用户可能会喜欢的内容。 (是的,我知道这听起来就像 stumbleupon.com)

这个想法的创建者是非技术人员,他之前有使用 wordpress 开发网站的经验。正因为如此,他的第一直觉是在创建这个项目时调用 CMS。作为一名拥有使用 PHP/Codeigniter 构建 Web 应用程序的丰富 Web 开发经验的开发人员,我的直觉是 CMS 从未打算用于创建这样一个特定目的的定制应用程序——并且尝试使用一个会在项目中制造大量不必要的开销/困惑。

我认为构建一个后端界面来查看/添加/编辑/删除蜘蛛收集的内容可能会更好,因为我认为这是非技术合作伙伴唯一的访问/控制类型在这个项目中需要。 (也可能禁止用户,删除对内容的不当评论等)

但是你们怎么看,CMS 是否可以为这样的项目提供某种值(value)?在某些情况下,CMS 好/坏是普遍接受的规则吗?我多年来一直使用 codeigniter 等框架构建 PHP 应用程序,最近我不得不在 wordpress 网站上工作——对我来说,这似乎是一堆令人作呕的全局变量,无穷无尽的“钩子(Hook)”来获取代码在您需要的时间/地点执行等。

----编辑----

我应该补充一点,要添加到所有这一切的一个预期功能是用户将能够将他们自己的内容添加到我们的聚合内容集合中。只是另一个让我觉得这个应用程序太“独特”而无法在 CMS 上正确开发的功能。

----编辑----

要补充的另一件事是可扩展性 是一个大问题。我们希望将其构建为能够处理每月 200,000 - 2,000,000 - 20,000,000 名唯一身份访问者。这意味着使用我们掌握的一切,负载平衡,memcached 缓存,工作进程/服务器,高可用性 mysql 和 mongodb 数据库(在我们的网络应用程序中用于不同目的),内容交付网络,独立于应用程序服务器托管 Assets 文件等。我对放弃对所有代码的直接控制感到不安,因为在过去我已经利用我接触一切的能力来微调任何性能问题/瓶颈。

最佳答案

嗯,大多数 CMS 不仅有 CMS,还有提供基本功能的综合 PHP 框架。话虽如此,CMS 更适合以内容为基础的网站,例如拥有大量文章的网站。非技术用户的用户更新和管理此类站点要容易得多。但是当涉及到 webApps 时,它们需要更多的交互,例如a 在 CRM 应用程序中,插入、读取和更新发生得非常频繁。

其他需要注意的地方是

1) 如果我将 CMS 用于我的应用程序,它是否可以扩展,如果您认为您的应用程序将来会增长,并且您开始从头开始构建它,到时候您自己的代码片段将转换为框架为您的应用程序。事情将很容易更新,添加一些新功能等。

2) 灵 active ,如果您使用 CMS,您将不得不将自己限制在 CMS 环境中,如果您需要在您的网站中提供某种功能,但您发现没有为此量身定制的东西,该怎么办。在那种情况下,您将不得不自己开发它,这可能会比其他方式花费更长的时间。

3) 性能,CMS 应该用于它们的构建目的,CMS 将加载正常运行所需的一切,而您的应用根本不需要这些东西中的大部分。

我会说使用一些为帮助开发过程而构建的框架,例如 CakePHP、CodeIgniter、Yii 等。

关于php - 什么时候使用 CMS 构建网站是好主意还是坏主意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7532804/

相关文章:

php - Laravel 4 Eloquent 获取站点名称

javascript - React JS - IMG onclick 事件后无法更新文本

php - preg_replace 问题

java - Ant 独立包或其他安装程序(适用于 java web-app、windows)

java - 如何在前端使用Hibernate乐观锁定版本属性?

php - 如何修复因不正确的字节计数长度而损坏的序列化字符串?

php - 在 PHP for 循环中运行 N 次存储过程是否不好?

javascript - 如何使用android firebase数据库将firebase集成到webapp中?

php - 从不同页面上的 PHP 表单更改 HTML 元素类 - 自定义 CMS

asp.net - 在 IIS 中托管 Sageframe 网站时配置文件错误