为高级项目选择什么PHP框架

时间:2010-02-12 17:05:08

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

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

现在的问题是,我必须对软件架构和开发过程充分了解和理解。我肯定不会从头开始,但我无法在我的文档中演示Drupal

我想使用一个可以构建技能的框架,一个不过于复杂的框架,还有一个,这仍然会让我编写代码 - 高级项目是关于我的工作,而不是关于php的工作社区

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

我在思考一些非常小而甜蜜的东西,这些东西并不会出现在每一步中并且说:“嘿,你知道什么,我能做得比你好吗”可能像CakePHP那样。

我知道或多或少,我需要的所有代码都可用。然而,这里的重点只是更具学术性。

有什么建议吗?

5 个答案:

答案 0 :(得分:10)

你应该让Kohana成为你的选择。我不明白你避免它的原因。

现在有两个Kohana版本,第2版和第3版。

版本

2. *行的当前版本是:2.3.4和2.4将在文档完成并撒粉时发布。 2.4是API更改版本

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

文档

人们抱怨Kohana文件,我认为这是不合理的。前段时间可能是真的,但情况发生了很大的变化。 Kohana 3拥有精彩的文档,可以找到here并在kerkness.ca拥有广泛的第三方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就是你的选择。

就这件事而言,只是我的两点。

答案 1 :(得分:5)

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

他们制作博客的介绍视频就是让我迷上了。良好的语法,良好的实践......不能为你的大小/风格项目推荐它。

修改

正如评论者所指出的那样,我会把这些优点列为要点:

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

  • 按需调用的库和帮助程序 - >最小化内存使用

  • 很棒docs。不是个人的大肆宣传,但他们用可读的英语写成了很好的例子

  • 可扩展 - 社区编写的大量图书馆

  • 鼓励MVC架构

  • 良好的内置安全功能

答案 2 :(得分:2)

嗯,我亲自尝试过Symphony,Zend Framework和Kohana。从这三个方面来看,Zend Framework在我身上做出了最好的第一印象,也是最好的第二印象。我已经使用它超过一年了(我认为差不多两年),我已经为我的客户编写了几个自定义内容管理系统(每个都特定于我客户的网站需求)。

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

Symphony也很棒,但我有两个问题。

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

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

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

答案 3 :(得分:1)

熟悉CodeIgniter:允许您实现干净的MVC架构,无需书本说明。社区也很棒,所以你不会孤单。

答案 4 :(得分:0)

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