代码之家  ›  专栏  ›  技术社区  ›  Eli

我应该使用哪个框架来确保更好的长期升级/维护性、cakephp或codeigner?

  •  2
  • Eli  · 技术社区  · 16 年前

    我正在决定为PHP开发一个框架。我把范围缩小到cakephp和codeigner。我有几个问题要问你们中任何一个已经使用或熟悉这两种方法的人:

    1. 我喜欢cakephp默认情况下将大部分代码保存在webroot之外的事实。尤其是因为我可能最终会为多个应用程序使用一个框架安装。我看到CodeIgniter也会这样做,但是你必须对它进行配置,并移动一些东西。这是一个安全可靠的解决方案,还是一个事后的黑客?

    2. 哪一个(如果不是两个)更容易升级和长期维护?随着新版本的框架(以及PHP本身)的出现。我不想发现我的东西要么坏了,要么过时了。

    编辑:

    这是一个非常古老的帖子,但我想我会用我最后做的事情来更新它,那就是使用Kohana。

    7 回复  |  直到 11 年前
        1
  •  4
  •   drfloob    16 年前

    你应该 尝试 这两个框架都有一周左右的时间,在这两个框架中构建一些琐碎的东西(如博客或wiki),并查看您更喜欢使用哪个框架。任何最有意义的 给你 可能会通过升级和降级来维持最长的时间。

    Cakephp现在处于一种不稳定的状态,在推动发布1.2版(不向后兼容)的同时仍在发现错误。如果你需要一些坚实的东西,我不建议用它构建一个关键的应用程序。 马上 . 如果你能等一两个月时间来解决问题,那么这可能是一个没有意义的问题。

    要解决您的问题:

    1)cake和ci的做法相同(iirc)。他们在这方面同样安全、可靠和黑客。

    2)一切都变了。如果您需要具体的、永久的稳定性和向后兼容性保证,那么就滚动您自己的框架。没有那么多,你可以保证,除非你愿意,否则什么都不会改变。

        2
  •  2
  •   Paolo Bergantino    16 年前

    我已经在cakephp上部署了多个应用程序,这是一个非常非常好的体验。任何一种方法都不能出错,因为两者都是可靠的。

        3
  •  1
  •   community wiki moo    16 年前
    1. 是非问题。

    2. CodeIgniter背后有一个赞助商,所以从长远来看它绝对是可以选择的。而且,速度更快。

        4
  •  0
  •   user33230    16 年前
    1. 这不是问题。这个应用程序有几行代码,说明核心和应用程序代码在哪里。你只需要改变这些线条。

    2. 你永远无法预料到这一点。

    php的状态是一个通配符。一个应用程序(CI)构建为与php4兼容,另一个需要php5。如果您需要处理Web主机只支持旧版本的PHP的可能性,那么您需要与Co合作。

    另一个问题是单元测试。如果您需要您的框架与测试一起提供,那么CI不是一种可行的方法。

    就我个人而言,由于公司的支持,我对CI很满意。CI背后的公司正从他们的努力中获得真正的利润。尽管CI是免费的,但他们的付费产品(ExpressionEngine)最终将使用CI。Zend框架和Rails(最初为Basecamp建造)的诞生也是如此。

        5
  •  0
  •   Brian    16 年前

    对上述评论的微小修正:两者都与php4兼容,而不仅仅是ci。另外,我不认为拥有一个赞助人会或多或少地提高CI的可升级性或可维护性。钱根本解决不了这些问题。

    我在各种应用程序中使用cakephp,到目前为止我对它很满意。1.2比1.1有很大的改进,虽然库源代码可能从RC3更改为final,但我认为您编写的任何代码都不会过时。我唯一担心的是,这本手册没有它应该的那么全面(在我看来),而且我最终还是使用了API。权衡的是,我现在很好地理解了幕后的代码。无论如何,我强烈推荐它。

    另一方面,我从来没有玩过CI,所以我不能推荐cakephp 结束 CI。我会带着每个人转一圈,看看谁能抓住你。无论你选择哪一个,从它的约定和能力中学习地狱。当我开始使用cake时,我无意中编写了一组代码,通过让我在控制器中设置一个变量来完成cake所做的“自动”操作。

        6
  •  0
  •   Teej    16 年前

    代码点火器是非常灵活的,因为你会看到,一旦你尝试它。因此,如何维护您的应用程序将落在您的手上。

    我还使用相同的安装部署了多个应用程序。我通常为CMS项目创建两个应用程序(一个用于管理,一个用于前端)。

        7
  •  0
  •   Jim OHalloran    16 年前

    要从代码点火器的角度解决这两个问题(我不使用cake):

    1)默认情况下,codeigner不会将自己放在webroot之外,但它可以通过一些非常简单的更改来实现。第一部分 my CI tutorial series 说明如何执行此操作,以及新CI实例设置的演练。完成后,需要在webroot中的唯一CI部分是一个小型index.php引导文件。

    2)我有一个最初在ci 1.4.x中开发的应用程序,我成功地迁移到了1.5.x,然后是1.6.x。随着每个新版本的发布,ci dev都提供了详细的升级说明,其中列出了需要替换的内容,因此升级相当容易。

    吉姆。