【问题标题】:What PHP framework to choose for a Senior Project [closed]为高级项目选择什么 PHP 框架 [关闭]
【发布时间】:2011-01-16 06:01:21
【问题描述】:

我正在处理我的高级项目,我们一致同意的主题是 CMS,它与 Drupal 类似,可通过提供强大的管理功能使事情变得更容易 其中一些包括: 内容类型和数据字段创建 (CCK) 视图创建 复杂的用户管理(任务和角色) 稍后添加第三方模块的能力 - 挂钩 模板能力

现在的问题是,我必须对软件架构和开发过程有足够的知识和理解。当然,我不会从头开始,但我也无法在我的文档中演示 Drupal

我想使用一个可以培养技能的框架,一个不太复杂的框架,一个仍然可以让我编写代码的框架 - 高级项目是关于我的工作,而不是关于 php 的工作社区

我是从 Kohana 开始的,但我不太喜欢它。它糟糕的文档,以及代码库中的频繁更改让我停下来。

我在想一些非常小而可爱的东西,一些不会出现在每一步的东西,然后说:“嘿,你知道吗,我可以比你做得更好” 可能是像 CakePHP 这样的东西。

我知道或多或少,我需要的所有代码都在那里可用。不过,这里的重点只是有点学术性。

有什么建议吗?

【问题讨论】:

    标签: php drupal cakephp content-management-system kohana


    【解决方案1】:

    除了上面建议的选择(CakePHP、ZendFramework),我还建议你看看 Symfony

    【讨论】:

      【解决方案2】:

      您应该让 Kohana 成为您的选择。我不明白你为什么要避免它。

      目前有两个 Kohana 版本,版本 2 和 3。

      版本

      2.* 行的当前版本是:2.3.4 和 2.4 将在文档完成和除尘后发布。 2.4 是一个 API 更改版本

      3.* 行的当前版本是 3.0.3,API 冻结,直到下一个主要版本(几个月后)。

      文档

      人们抱怨 Kohana 文档,我认为这是不合理的。前段时间可能是真的,但情况发生了很大变化。 Kohana 3 有很棒的文档,可以在 here 找到,并且在 kerkness.ca 有一个广泛的第 3 方 wiki。

      2.* 行的文档可能不太好,但至少足以让您入门。当 2.4 发布时,它会和 Kohana 3s 一样好

      CodeIgniter 的注意事项

      在您开始使用 CodeIgniter 之前,您应该了解他们所犯的一些愚蠢的设计错误。

      • 他们最初决定通过在其中一个核心文件中运行$_GET = array() 来禁用$_GET。然后他们决定把它变成一个配置选项$allow_get。我完全不明白。
      • 继续使用 PHP4,他们重新实现了一些 PHP4 中没有的方法。我希望他们能继续前进,见鬼;甚至他们的用户也开始使用 PHP5 编写插件和库。
      • 会话支持绝对是废话。人们仍然每天都会遇到问题。想要拥有不同的会话驱动程序? (本机、数据库或 cookie)不,您只有一种选择。

      Alex Mcp 的一些观点也不是真的有效。

      文件小(下载为 2.1MB,但实际使用的文件约为 1.5MB)。

      Kohana 也是几个 MB,但这绝不应该成为选择框架的理由。

      按需调用的库和助手 -> 最大限度地减少内存使用

      这就是 CodeIgniter 糟糕的地方。在 PHP5 中,您将创建一个静态方法并像这样调用它 Class::method();.

      我曾经讨厌$this->load->helper('form')等CodeIgniter的方式...

      问问自己,现在谁在挡路?

      很棒的文档。个人不是从顶部下降效果的忠实粉丝,但它们是用可读的英语编写的,并带有很好的示例

      见上文。

      可扩展 - 社区编写的大量库

      Kohana 也有数百个扩展,http://dev.kohanaphp.com/projects/ & http://github.com/search?q=kohana&type=Everything&repo=&langOverride=&start_value=1

      CodeIgniter 允许您通过对类使用特殊的“My_”前缀来扩展类。 Kohana 使用级联文件系统执行此操作,因此应用程序中名为“form.php”的文件会自动覆盖系统目录中的“form.php”。

      如果您真的想要一些不会妨碍您并帮助您而不是阻碍您的东西,那么 Kohana 就是您要走的路。

      在这件事上我只有 2 美分。

      【讨论】:

      • 很好的答案,让一个伟大的框架听起来......好吧..太棒了!
      • CI 在具有多个开发人员的更复杂的项目上确实存在不足。它真的可以从一些 ORM 和创建表单的简单方法中受益。
      【解决方案3】:

      我非常喜欢CodeIgniter。它没有 CakePHP/Rails 的神奇功能,但它自动提供了一个很好的 MVC 设置和一个很好的表单基本库、ActiveRecord 实现、处理 POST 数据清理以及其他我不喜欢的好东西处理每一个项目。

      他们制作博客的介绍视频让我着迷。良好的语法,良好的实践......不能为您的大小/样式项目推荐它。

      编辑

      正如评论者所说,我将把优点排列为要点:

      • 文件小(下载为 2.1MB,但实际使用的文件约为 1.5MB)

      • 按需调用的库和助手 -> 最大限度地减少内存使用量

      • 太棒了docs。个人不太喜欢从顶部下降的效果,但它们是用可读的英语编写的,并带有很好的示例

      • 可扩展 - 社区编写的大量库

      • 鼓励 MVC 架构

      • 良好的内置安全功能

      【讨论】:

      • +1 为伟大的思想者提供相同的想法:-)
      • +1 codeigniter 也有很好的文档
      • 同意。 CodeIgniter 有很好的文档,有一个写得相当好的代码库(假设你不介意它仍然支持 PHP4,这会增加一些麻烦),很小(OP 的要求),有一个稳定且经过良好测试的代码库,有一个大型社区,有企业支持,对你有好处,但不多(你必须编写自己的 CRUD 操作、身份验证库等)。
      • 我想我还是会尝试 CI。我已经浏览了博客教程,看起来很流畅。刚开始和 Kohana 合作有点尴尬。
      • 欢迎将此标记为已接受的答案
      【解决方案4】:

      嗯,我个人尝试过 Symphony、Zend Framework 和 Kohana。在这三者中,Zend Framework 给我留下了最好的第一印象,也是最好的第二印象。我已经使用它一年多了(我想差不多两年了),我已经为我的客户编写了几个自定义内容管理系统(每个都针对我客户的网站需求)。

      此外,我目前正在从事我的学士学位项目,该项目也是关于构建一种类型的内容管理系统,并且我正在使用 Zend Framework。

      Symphony 也很棒,但我遇到了两个问题。

      • 在 Windows 中,执行 Symphony 命令(例如,用于创建具有默认目录结构的新项目)花费的时间太长(在命令开始执行之前总是需要大约 10 秒)。我相信,这是一个已知问题,但很长一段时间都没有得到解决。
      • 文档(至少在我尝试 Symphony 时)不一致,并且存在无法正常工作的代码示例和其他错误,这可能会很烦人。

      Zend Framework 有一个非常好的文档,所以这才是真正说服我继续使用它的原因,而且 StackOverflow 上有一个非常有用的社区,它帮助我解决了许多问题。

      我也喜欢它没有像 Kohana 或 Symphony 那样快速发展的事实。我是一个喜欢习惯某种做事方式的人,我不喜欢每三个月改变一次习惯。

      【讨论】:

      • 我有点同意您对频繁更改的看法。我讨厌 Kohana 的地方在于他们不时地完全更改代码
      • 是的。我一年前写过一些 ZF 应用程序,它们可以与最新的 ZF 版本一起使用,无需任何更改:)
      • 采埃孚唯一的缺点是它的鲁棒性。您正在寻找一些小的东西,ZF 有大约 25MB 未归档(只有核心库,不包括 Dojo、单元测试、演示和其他东西!加上所有外部组件,它可能接近 30MB)。所以我想这对你来说真的不是一个选择。你要找多小?小于 10MB?小于 5MB?
      • 我猜尺寸很重要。最后我正在寻找一个更小的尺寸,这样我最终可以在毕业后传播我的 CMS 时将它作为一个加分项
      • 对于复杂应用程序的 Zend 框架,对于较小的 Kohana,我会投反对票。
      【解决方案5】:

      看看 CodeIgniter:允许你实现干净的 MVC 架构,而不需要一本说明书。社区也很棒,所以你不会孤单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-23
        • 1970-01-01
        • 1970-01-01
        • 2012-03-04
        相关资源
        最近更新 更多