2

我正在决定一个框架来试用 PHP。我已将范围缩小到 CakePHP 和 CodeIgniter。对于使用过或熟悉两者的任何人,我有几个问题:

  1. 我喜欢 CakePHP 默认将大部分代码保留在 webroot 之外的事实。特别是因为我最终可能会为多个应用程序使用单个框架安装。我看到 CodeIgniter 也会这样做,但是您必须对其进行配置并移动一些东西。这种解决方法是安全可靠的,还是事后才想到的黑客攻击?

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

编辑:

这是一篇很老的帖子,但我想我会用我最终做的事情来更新它,那就是使用 Kohana。

4

7 回答 7

4

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

CakePHP 目前处于不稳定的状态,在推动发布 1.2 版(不向后兼容)时仍会发现错误。如果你现在需要一些坚如磐石的东西,我不建议用它来构建一个关键的应用程序。如果您可以等待一两个月让事情解决,那么这可能是一个有争议的问题。

解决您的疑虑:

1)Cake 和 CI 的做法相同(iirc)。在这方面,它们同样安全、可靠和骇人听闻。

2)一切都变了。如果您需要具体的、永久的稳定性和向后兼容性保证,请推出您自己的框架。它没有那么多,而且除非你愿意,否则你可以保证没有任何变化。

于 2008-11-07T01:33:32.357 回答
2

我在 CakePHP 上部署了多个应用程序,这是一次非常非常好的体验。无论哪种方式,您都不会出错,因为两者都是可靠的。

于 2008-10-31T23:40:34.273 回答
1
  1. 不是问题。

  2. CodeIgniter 背后有赞助商,所以它绝对是长期选择的赞助商。此外,它更快。

于 2008-10-31T22:03:34.110 回答
0
  1. 这是一个非问题。该应用程序有几行说明核心和您的应用程序代码所在的位置。您只需要更改这些行。

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

PHP 的状态在这里是一个通配符。一个应用程序 (CI) 与 PHP4 兼容,另一个则需要 PHP5。如果您需要处理仅支持旧版本 PHP 的网络主机的可能性,那么您需要使用 CO。

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

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

于 2008-10-31T22:14:39.517 回答
0

对上述评论的小修正:两者都与 PHP4 兼容,而不仅仅是 CI。另外,我不认为有赞助商会使 CI 或多或少可升级或可维护。金钱至少不能解决这些问题。

我将 CakePHP 用于各种应用程序,到目前为止我对它很满意。1.2 是对 1.1 的巨大改进,虽然库源代码可能会从 RC3 更改为 Final,但我认为您编写的任何代码都不会过时。我唯一的烦恼是该手册没有应有的全面(在我看来),而且我最终使用了 API。权衡是我现在非常了解幕后的代码。无论如何,我强烈推荐它。

另一方面,我从来没有玩过 CI,所以我不能推荐 CakePHP而不是CI。我会每一个都试一试,看看哪个能抓住你。无论您选择哪一个,都要研究它的约定和功能。当我开始使用 Cake 时,我不知不觉地编写了一堆代码,让我在控制器中设置一个变量,从而让 Cake“自动”完成一些事情。

于 2008-11-12T00:43:56.920 回答
0

CodeIgniter 非常灵活,一旦您尝试过就会看到。因此,您的应用程序如何可维护将落到您的手中。

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

于 2008-11-17T04:02:27.943 回答
0

从 CodeIgniter 的角度解决您的两个问题(我不使用 Cake):

1) 默认情况下,CodeIgniter 不会将自身保留在 webroot 之外,但它可以通过一些非常简单的更改来做到这一点。我的 CI 教程系列的第一部分解释了如何做到这一点,并介绍了新 CI 实例的设置。完成后,唯一需要在 webroot 中的 CI 部分是一个小的 index.php 引导文件。

2) 我有一个最初在 CI 1.4.x 中开发的应用程序,并且我已成功迁移到 1.5.x,然后是 1.6.x。对于每个新版本,CI 开发人员都会提供详细的升级说明,列出需要更换的内容,因此升级相当容易。

吉姆。

于 2008-12-09T07:10:05.313 回答