【问题标题】:Custom CMS or Open Source? [closed]自定义 CMS 还是开源? [关闭]
【发布时间】:2011-12-15 23:36:52
【问题描述】:

我正在使用 PHP 和 MySQL(或 SQLite,我仍在争论)为我的朋友建立一个网站。该网站旨在通过各种选项在线销售摄影作品。后端显示统计信息、最近的订单等,并允许客户端上传图像、在浏览器中裁剪它们(使用 javascript 和 GD)、为图像添加水印、调整价格、框架选项、优惠券代码等。上传图片,网站还必须调整图片大小,允许更改颜色或预设过滤器等。当有人在前端购买图片时,将使用 paypals IPN 联系网站,电子邮件将发送到买家和管理员,一切都会恢复。

前端将具有显示 10 个最近上传的主页、3 个客户端可以输入上下文信息的页面,以及将显示所有图像的图库链接(带有排序选项,例如按颜色排序,尺寸、价格、标签、类别等)

在购买图片时,用户会面临尺寸、有框或无框、颜色、签名等选项。

鉴于所有这些信息,使用开源 CMS(以及哪一个)或自己设计会更容易吗? (如果归根结底,我可以在大约一个月左右的时间内为这个网站设计一个快速系统)

完成这样一个项目的最佳方式是什么?

谢谢

【问题讨论】:

  • 哇,不知道为什么关闭了。对我来说,这似乎是一个与软件相关的问题。

标签: php image open-source content-management-system e-commerce


【解决方案1】:

那里有许多开源 cms。 (Drupal、Joomla、Moodle 等)

为什么要浪费一个月的时间重新发明轮子?我们的很多网站都使用 Drupal。凭借“开箱即用”的主题功能、用户管理和数据存储功能,它们可以为您提供一个很大的先机。此外,通过各个社区贡献的模块,很有可能有人已经为您完成了大部分工作。因此,与其花一个月的时间来提出一个“快速”的系统,不如花一个月的时间来完善一个伟大的系统。 :)

有些人抱怨开源 CMS 的学习曲线过于陡峭或令人费解……是的,它们很复杂,但我的经验表明这是值得的。

由你决定。

【讨论】:

    【解决方案2】:

    首先让我建议您:不要将 SQLite 用于此类网站。并不是说这个 DBMS 很差(不过它真的很棒!),而是 它不适合同时访问您网站的多个用户。坚持使用 MySQL,如果这是除了 SQLite 之外的唯一选择。

    其次,它会更容易使用开源 CMS。您有两个热门选项作为首选:

    • WordPress 和
    • Drupal,

    Drupal 具有出色的架构,WordPress 更易于使用。两者都非常功能强大,都有无数模块可供使用,都可以用来搭建小型购物网站。

    查看它们并自行决定。但可以肯定的是,使用已经编写好的软件可以为您节省几个月的时间(至少),并且会帮助您从社区支持中受益(更新、开发帮助、可能的劳动力,以防您需要)。

    【讨论】:

    • 不正确。 SQLite 轻松处理数千个读取请求。它仅在写入期间锁定。因此,如果您的站点正在向数据库写入大量内容,那么它的扩展性就不会很好。如果您的网站主要用于阅读,它将处理相当多的流量。如果你不管理你的交易,这将是一个很大的瓶颈sqlite.org/faq.html#q19
    • 还有一点“SQLite 通常可以很好地作为中低流量网站的数据库引擎(也就是说,所有网站的 99.9%)。SQLite 可以处理的网络流量取决于, 当然, 关于网站使用其数据库的严重程度。一般来说, 任何获得少于 10 万次点击/天的网站都应该可以正常使用 SQLite。10 万次点击/天的数字是一个保守的估计, 而不是一个硬性上限。SQLite已被证明可以处理 10 倍的流量。”通过sqlite.org/whentouse.html
    • @RTGibbons:好的,让我说得更清楚一些。 SQLite site itself 提到,SQLite 可能不适合(其中包括):大容量网站、高并发。当然你可以假设 OP 不需要它,但让我们面对现实吧:MySQL 不会这么快就出现这样的问题 (unless OP will reach Facebook's size)。
    • 当您可能需要考虑使用不同的后端 - 每天 10 万次点击,案例达到 10 倍时,您是否阅读了他们估计的负载的数字。我认为可以构成多个用户。我厌倦了看到人们说不要使用他们认为自己无法扩展或不了解技术的东西。尤其是 SQLite,您并不总是需要 RDBMS 来完成工作。
    • @RTGibbons:不要误解我的意思——SQLite 非常适合许多应用程序。只需考虑以下事实:1)OP 是初学者(意味着代码可能远非高效,可能会为单个页面请求调用数据库数千次),2)OP 不知道 SQLite 限制(意味着可能会命中这个解决方案的墙),3)OP想要构建一个应用程序(不是一个简单的站点),这意味着如果站点成功,将有更多的机会耗尽点击次数/天的软限制.
    【解决方案3】:

    这绝对是一个主观问题,可能会被关闭或转移到另一个场地。

    作为一家小商店,完全有理由使用服务,而不是让任何人构建软件。定制软件的创建和维护成本很高,而且您通常最好使用能够满足您所需的 80% 的在线产品。

    在 google 中搜索“摄影师的网站”似乎有 100 多个选项。您的朋友需要定制 CMS 是否有真正的原因?

    如果您认为没有在线服务是足够的:

    除非没有其他选择并且您有大量的持续预算,否则不要设计您自己的 CMS。

    虽然今天的项目范围可能很小,但随着时间的推移,您的朋友会想要添加新功能(facebook 集成、flickr 集成、通过视网膜扫描登录等)。通过使用开源,他们将能够使用现成的插件代码添加这些。

    当您使用开源 CMS 时,您可以让他们在未来让其他人参与其中。聘请 Drupal 或 Wordpress 编码员来做几天的定制工作或支持是没有问题的。对于其他程序员来说,学习自定义 CMS 需要更长的时间并且成本更高。

    您可以专注于项目中对您的朋友最有价值的部分。不是创建登录系统、构建 Flash 上传器或管理支付流程。那些事情都是别人处理过的。充分利用这一点。

    您将获得有关广泛使用的 CMS 的宝贵知识。您将学习如何阅读他人的代码并按照您的意愿进行修改。当您必须构建自定义解决方案时,这将很有帮助。

    我构建并维护了一个定制的 CMS 六年。该公司仍有数百名客户在使用它。如果他们可以将它们全部迁移到 Drupal/Wordrpess,他们会更快乐。

    有一点需要注意:确保您的朋友可以使 CMS 保持最新状态。这些平台不断发布安全版本,因为它们经常受到脚本小子的攻击。攻击者也会发现你工作中的缺陷,但他们无法直接访问代码,因此他们会更慢。

    【讨论】:

      【解决方案4】:

      如果我处于您的位置,我会四处寻找能够满足您至少 60% 需求的开源 CMS。您没有提及您的编码技能水平,但您可能足够熟练地定制任何“开箱即用”代码不支持的要求。

      许多开源应用程序都是高度可定制的,因此您可以安全地添加自定义代码来支持您的需求,而不会弄乱源代码。这很重要,因此您可以升级 CMS 代码库而无需覆盖任何自定义代码。

      如果需要,您还可以在框架上堆叠开源应用程序以获得更多开箱即用的功能,例如,drupal 可以使用某些 zend framework 库。

      您只需要具备从可用资源中提取所需内容并进行定制以满足您的要求的专业知识。

      【讨论】:

        【解决方案5】:

        今年年初我参与了一个非常相似的项目,要求我使用 Drupal,我对整个 Drupal 场景真的很陌生,我必须说这是一次很棒的经历,一旦你通过了学习曲线并且发现你得到了所有东西的钩子,你将开始做你的自定义模块,它将为图像处理做 GD,我最终使用exec 或类似的东西来使用整个ImageMagick framework,我知道你的要求是独特的和不同的比我的要快,但我认为 Drupal 比开箱即用的解决方案更快。

        【讨论】:

          【解决方案6】:

          是的,我同意其他所有人的观点。开源。它将为您节省大量时间。看看 Joomla!使用 K2 组件 (CCK),我相信它可以处理您所描述的大部分内容。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-23
            • 2011-12-09
            • 2012-09-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多