【问题标题】:Joomla versus CodeIgniter/YIIJoomla 与 CodeIgniter/YII
【发布时间】:2013-08-01 11:42:56
【问题描述】:

合作伙伴的网站需要从头开始重建,因为它根本无法应对大量访问者(目前使用 SilverStripe 构建)。该网站应该能够处理 500 万或更多使用 20 多种语言的会员。

我们正在考虑使用 CodeIgniter 或 YII,因为从研究来看,两者似乎都表现出色。然而,有几个人建议我们应该为此考虑最新版本的 Joomla。对于小型网站,我们很乐意使用 Joomla,但对于负载较重的网站,我们感觉我们必须远离它。然而,从性能的角度来看,我们无法找到两者之间的任何比较,但我们确实需要很好的论据,为什么 Joomla 会或根本不会成为这方面的好候选人。可以在这里找到一个比较:http://vschart.com/compare/yii/vs/joomla/vs/codeigniter,但这并不能告诉我当访问者数量非常多时会发生什么。

考虑到该网站将获得大量访问者并将使用 20 多种语言,有人可以建议 Joomla 与 CodeIngitor 或 YII 相比如何(对于 silverstripe,我们构建了一个翻译器模块,因为在使用 CMS 时构建没有用这么多翻译者)。

【问题讨论】:

  • 问题是银条还是你的代码?

标签: performance codeigniter joomla yii comparison


【解决方案1】:

当您处理如此规模的网站时,最好不要转向 Joomla。 Joomla 可以处理相当多的问题,但我建议当网站随着流量的增加而适应时,拥有这么大的 Joomla 网站会容易得多。

让您的问题难以回答的部分原因是我们对您当前网站的用途知之甚少。

  • 主要是 CMS 吗?如果是这样,Drupal 可能非常适合您。

  • 它是自定义 Web 应用程序吗?根据您正在处理的翻译数量,听起来可能是这样。

  • 是否介于两者之间?这也可能是您正在处理的问题。

如果您正在查看最后两个选项中的任何一个,是的,从 SilverStripe(但不是 Joomla)转移听起来可能是件好事。

考虑到您要处理的流量,听起来您可能已经有了收入来源和开发团队。在这种情况下,可能值得让您的一些开发人员使用 CodeIgniter 和 Yii 并看看他们的想法。

我之前写了一个关于选择什么类型的框架的问题的详细答案,你可以在这里查看: https://stackoverflow.com/questions/10095906/yii-or-zend-or-other-frameworks-under-the-following-requirements/10115678#10115678

我是 Yii 的粉丝,查看过很多其他框架。无论您使用哪种框架,我都想提供一条我认为对我从事的所有项目都很重要的建议。

您希望使用对象,而不是数据数组

上述原因是您的模型(以及它们生成的对象)最终可能会将您的业务逻辑内置到其中。从长远来看,这样做会使生活 farfar 更轻松。 Object Technology: A Manager's Guide 是一本关于这个主题的好书,针对经理和相当高层次的人(没有代码,尽管可能有几行伪代码)。我强烈推荐它。

框架思路

CakePHP

我开始涉足 CakePHP,直到我发现它没有交回对象(只是数组),这时我尖叫着跑了。

CodeIgniter

看看 CodeIgniter 对数据库模型的支持,我想你会很快用你的大小的网站达到它的限制,所以建议不要这样做。让 EllisLabs 决定放弃 CodeIgniter(有关更多详细信息,请参阅他们的网站)并不是一个好兆头。标志说远离。

在 PHP 框架中,我听到最多的是这些:

  • Symfony 2
  • Yii(披露:我每天都用这个)
  • Laravel

Symfony

据我所知,这对 PHP 社区来说是一个巨大的刺激,许多最佳实践都来自该社区。单元测试,Composer,推动 PSR-1/2,代码模块化的理想(他们的一些核心代码最终在 Drupal 8 中结束)都是促使 PHP 社区编写比意大利面条代码更好的代码的好东西.话虽如此,感觉有点沉重和企业化,看起来学习曲线相当沉重。

Yii

当我在寻找一个框架时,我有很多需要迁移的遗留代码。 Yii 处理事情的方式,虽然有时固执己见,但在让我接触到在网络上大量使用的良好实践方面对我有很大帮助。也强烈推荐。

Laravel

当我在寻找一个框架时(2 多年前),Laravel 并不存在。它显然非常漂亮和前沿(还没有看过,我一直忙于在 Yii 世界中定期登陆新作品),但我有兴趣涉足它。也就是说,这里有一个 thoughtful article about Laravel 和我想知道的几个注意事项。

  1. 主要开发人员 Taylor Ortwell 似乎是一股主导力量。当他这样做并享受它赚钱时,这是一件很棒的事情。如果他决定做其他事情,不确定框架会发生什么。

  2. 框架的开发速度是一件了不起的事情,这意味着各种各样的创意源源不断。这是一个去看看很酷的新事物的好地方。也就是说,您希望您的开发人员能够轻松找到有关他们正在使用的框架的信息,这些信息在 Laravel 社区中可能会在 3-6 个月内严重过时。当我环顾四周时,Ruby on Rails 社区有同样类型的好/坏问题。关于新东西的信息太多了,有时很难找到有关您正在处理的框架版本的信息。

也就是说,那里有很多很酷的选择 :-) 我可能应该结束了,因为这比我预期的要长得多。让我们知道您最终做出的决定以及结果如何。

【讨论】:

  • 嗨,你在哪里看到 Zend? THX
  • 你可以用它做任何事情,但需要很长时间才能完成。我会说它比 Symfony 更具企业感。您可能可以获得企业级支持,但您的团队需要很长时间才能做任何事情。 Magento(那里有一个大型购物车)是建立在它上面的,感觉就是这样。我自己可能会避开它,它是围绕旧技术(和自动加载器)构建的,这使得它在现代 PHP 世界中有点痛苦。
【解决方案2】:

网站到底有多大?比 joomla.org 大吗?

您说的是数据库中的内容量还是访问者数量。
Joomla 确实没有规模问题,除非您使用的是旧版本的 MySQL,在这种情况下它会变慢。

【讨论】:

  • 说到大,我指的是每小时有 3000 多到 8000 名访问者和超过一百万的会员,并发布了大量消息和图片。
  • 有这种规模的 Joomla 站点,尽管它们显然有人关注负载平衡、缓存和其他典型小型企业站点不需要考虑的问题。我的意思是你没有在那个级别上玩,你可能必须构建一些自定义的东西来精确地做你想做的事情并优化你需要优化的东西。 quizilla.teennick.com 在 1.5 框架上,所以它很旧(超过 6 年),但自从他们构建它以来,他们只需要更改几百行代码。 joomla.org 在 alexa 中排名第 632。
  • 我同意@Elin 的大部分观点!
【解决方案3】:

这取决于您想要什么样的应用程序。 如果您想要一个 CMS,Joomla 是您的最佳选择。因为这就是它的构建目的。 如果您要创建一个真正的“自定义”应用程序,Yii/Codeigniter 是您的最佳选择。 (这就是 yii 的构建目的)

关于性能,根据我的经验,Yii 的速度要快得多,因为它的开销要少得多。您可以根据需要构建应用程序。

【讨论】:

    【解决方案4】:

    这就像比较绿色和咸味。真的 joomla 是 CMS,而 Yii 和 CI 是框架。如果您考虑在 joomla 上进行高负载 - 这不是您的工作。 如果你有高前端负载——也许关注 js 框架?前端的 Yii+backbone.js 或 ext.js 很棒,因为你会大量迁移到客户端。 CI死了。老实说,我喜欢它,但它已经死了。没有扩展,将来没有命名空间,什么都没有。 我可以说 Yii 的 +:

    *比 CI 更快;

    *有很棒的文档和维基文章;

    *拥有强大而活跃的社区和开发人员;

    我还能补充什么?活动记录适用于小型数据库,但不适用于高负载。同样正如我在 yii 上所说,您可以轻松地制作 js 框架+yii 组合。 Yii 有很好的缓存系统。长期支持稳定版本。

    我现在个人管理 highload,但它更多的是后端/api/数据库。每天150+千条数据库记录,300+千条API请求,5000万条记录数据表。它已经像时钟一样工作了 2 个多月了。

    选择你喜欢的,或者在原生 php 上编写(如果它真的很大)——实践中的最佳选择。

    【讨论】:

    • 我不能同意你的 Active Record 是用于小型数据库的。我在数据库中有数百万(30+ 百万)行的经验,它与 CodeIgniter 中的 Active Record 完美配合。 CI 的文档比 Yii 好得多。 CodeIgniter 的社区比 Yii 还要庞大。你甚至可以在 Stackoverflow 中看到 CI 和 Yii 不同的问题。 5,764 个问题标记为 Yii,21,093 个问题标记为 CodeIgniter。最后,我不能同意 CodeIgniter 已经死了。以前也有人说 MySQL,但它没有发生!
    • 我不想和你争论。 CI 是几年前的最佳选择,但现在不是。 Elislab 试图将其出售(或赠送)给某人。 Laravel 是下一个 CI,这就是为什么我说它已经死了。我在 CI 上有 1 个平台(现在在 yii 上重写),因为超过 1.5 年没有更新一些扩展。我喜欢 CI,但它已经消失了。抱歉,我从来没有使用过 CI AR,曾经使用过 adodb,但是活动记录对于高负载来说真的很糟糕。 Yii 在使用统计中加入 CI。我的伙伴用了 4 年的 CI,但现在学习 Yii 开始项目,也许这是一个信号?
    • 现在 MySQL 确实是高负载的最差选择。 MariaDB 或 PostgresSQL 执行得更好。看看MySQL分区的源码就明白了。
    • 伙计,你给我看的这个 Yii 的表现,你正在 Yii 网页上阅读。你在等什么?为什么会说别的?他们也将 Yii 与 CI 1.7 进行比较。我真的很愿意学习新的框架,我也喜欢 Yii。我阅读了他们的文档并做了示例,但我不能说它是最好的框架。每个框架都有其优点和缺点。很高兴与您交谈。
    • 我以前喜欢 CI,并在其中工作过,但现在我喜欢 yii。学习在 3-4 个月内通过项目工作。我并不是说它是最好的,没有缓存/apc 它的速度与 CI 相同,但它的速度更快。加上对我来说移植了 amazon sdk,因为服务器转移到了 amazon,还有更多。也许将来我会关注 laravel,作为下一代 CI,但现在 - 对于中小型应用程序,yii 几乎是最佳选择。我不算 Zend 或 OS Symphony,因为它们很难满足我们的需求。很高兴争论,没有冒犯)
    【解决方案5】:

    Joomla 是一个屡获殊荣的内容管理系统 (CMS),它 使您能够构建网站和强大的在线应用程序。许多 一些方面,包括其易用性和可扩展性,使 Joomla 最流行的网站软件。最重要的是,Joomla 是 每个人都可以免费使用的开源解决方案。


    CodeIgniter 是一个应用程序开发框架 - 一个工具包 - 用于 使用 PHP 构建网站的人。它的目标是使您能够 如果您正在编写代码,则开发项目的速度比您要快得多 从头开始,通过提供一组丰富的库来满足常用需求 任务,以及一个简单的界面和逻辑结构来访问 这些库。 CodeIgniter 让您创造性地专注于您的项目 通过最小化给定任务所需的代码量。


    Yii 是一个免费、开源的 Web 应用程序开发框架 用 PHP5 编写,提倡干净、干燥的设计并鼓励快速 发展。它可以简化您的应用程序开发和 有助于确保极其高效、可扩展和可维护的 最终产品。


    Joomla 无法与 CodeIgniter / Yii 相提并论。但是,如果您的项目需要任何 CMS,您可以使用 Joomla(或者 Wordpress)。如果您想创建任何 Web 应用程序,那么您需要决定使用任何 PHP 框架。我使用 CodeIgniter 多年,我喜欢它。他们有一个庞大的社区和最好的用户指南。 Yii 还有一个很棒的社区和很多功能。所以,你可以根据你的需求来决定。

    【讨论】:

    • 我假设当许多并发用户访问该站点时,Joomla 在服务器上会更重。对于 CodeIgnitor 和 YII,我参考下页显示的性能测试:link。似乎使用 APC 缓存启用 YII 性能非常好。 Joomla 在这个图表中可以与哪里相提并论?它的性能会类似于 CakePHP 还是更好或更差?根据提供的反馈,我认为在我们的案例中,几乎不需要进行内容编辑,YII 将是首选系统。
    • 您无法将 Joomla 与 PHP 框架进行比较。他们有区别。但是如果你想构建 Web 应用程序,我会更喜欢 PHP 框架。 CodeIgniter、Yii、CakePHP 等等。一切都很棒!你也可以查看 Laravel (laravel.com)。这是一个很棒的框架。正如我所说,这取决于您的应用程序需求。
    • @PeeHaa,这个问题的作者想比较这些树形 PHP 框架。我没有总结它,我只是展示了每一个的定义(来自他们的网页),最后我说 Joomla 是 CMS,CI/Yii 是 PHP 框架。我对他们每个人都进行了研究,我只是说出了我的看法。也许所有的人不可能对一件事有相同的看法。
    猜你喜欢
    • 2011-02-04
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多