您对强大,可扩展的开发平台建议了哪些框架?

时间:2009-10-13 15:52:25

标签: php zend-framework frameworks symfony1

首先,让我为又一个框架问题道歉。但我认为这与通常的“我应该选择什么样的框架?”不同。保证。

这是我的情况:在过去的一年里,我一直在使用自定义框架。它已被用于从小型CMS到大型网站甚至中型社交网络的所有内容。它工作得很好但我现在看到它的局限性。所以,我决定改用第三方框架。更简单的框架(CI,Kohana,Cake)似乎与我所听到的一样缺乏灵活性 - 所以这导致我走向ZF。但是,我也听说ZF可能过于灵活,因而难以使用。更复杂的是,我正在寻找一种通用的解决方案;我需要一个适用于大型项目的设置。我是主要开发人员,但我需要我的合作伙伴最终能够学习系统并帮助完成不那么复杂的编程任务。

我研究过Doctrine并且我喜欢它。因此,我倾向于将Symfony(与Doctrine)作为ZF的主要框架来填补空白。另外,我需要能够将自己的作品添加到此平台,与任何第三方库并行。我希望这将为我提供一个可靠,可扩展的平台,因为我们实际上无法承担每隔几个项目切换框架的费用。

我正在寻找与我现在情况相同的其他人的建议。任何建议都将不胜感激。

编辑:我已经在下面发布了我的解决方案,希望能够帮助处于相同情况的其他人

6 个答案:

答案 0 :(得分:6)

经过一番研究后,我决定选择Symfony。以下是我的理由:

  • 比ZF更简洁
  • 由于使用了YAML文件,似乎非常可定制(但我从未感到被它们所淹没)
  • 自定义类的自动加载不需要像ZF那样的额外工作(尽管在ZF中设置并不困难)
  • 开发人员工具栏非常棒,他们在ver 1.3
  • 中添加了一些不错的功能
  • 使用其他框架(ZF,eZComponents)的作品的能力让我有信心找到我需要的东西
  • 捆绑了Doctrine并且很容易设置(实际上Doctrine将成为ver 1.3中的默认ORM)
  • 似乎Symfony有一个更大的社区。谷歌“symfony教程”与“zend框架教程”相比,你会看到结果数量的巨大差异
  • 大量文档:教程(到目前为止Jobeet教程非常好),API参考,以及对框架及其基本原理的更易读的描述
  • 雅虎!已经将它用于他们自己的一些项目 - 很高兴看到一个Big Name支持一个框架IMHO

编辑:为了有希望在同样的情况下帮助别人,这里有一些我不喜欢Symfony的东西:

  • 不遵循PEAR命名方案(ZF)
  • 内部课程以“sf”开头。这与将班级名称的第一个字母大写的做法相反。
  • 变量和函数是write_like_this,但类方法是camelCased - 这对我来说似乎很草率

但这些都是化妆品问题;困扰我的事情,因为我喜欢用我的方式做事。我意识到无论何时使用第三方软件,您都必须愿意做出一些牺牲。

ZF当然是一个不错的框架,但我觉得使用Symfony作为主要框架,并使用ZF扩展它是我和我的团队的最佳选择。

修改

自最初发布此消息至今已有2年,而且由于它仍然受到点击,我认为我会快速更新。在过去的两年里,我可能使用symfony 1.x构建了大约25-30个项目,我对它的表现非常满意。作为一个完整的堆栈MVC框架,与Doctrine合作,它几乎处理了我投入的所有内容。无论它无法处理,很容易添加我自己的自定义代码。事实上,这就是我最喜欢的symfony - 扩展是多么容易。我最终构建了一堆插件和Doctrine行为,大大缩短了开发时间。管理生成器工具一直是神派。我仍然在这里和那里使用symfony 1.4进行一些项目,但是现在决定主要关注使用Symfony2。它与symfony 1完全不同,但我非常欣赏它的架构。更重要的是,它似乎比symfony 1.x更容易扩展。我确实错过了1.x的一些功能,但这是切换框架时必须要做的事情。

答案 1 :(得分:4)

我喜欢使用ZF,因为它有很强的惯例。你可以肯定,一切都会如你所愿。类名,函数名,变量名,目录结构......所有这些。如果坚持下去,它确实加快了开发速度。如果你调整它,那就更像是在查看你自己的代码时,检查ZF内部;)

老实说,让我们说实话。 ZF并不快。没有Nette,CodeIgniter等快。但不同的是,有一个类的一切。如果没有,可以扩展一个类或者可以实现的接口。

所有其他框架都试图获得“哇”的效果(30秒内的博客,2小时内的推特等)。但是,在开发真实应用程序时,您会意识到,它是您需要的随意使用,灵活而广泛的架构。

答案 2 :(得分:3)

*

  编辑:现在我几乎明白了   使用改进ZendFramework   你自己的代码(在这里问Adding 3rd Party lib to Zend和这里   Using 3rd Party lib within Zend),   我切换回ZendFramework。一世   目前设计我的应用程序和   我工作和测试的每一天   任何与ZendFramework相关的东西   越来越熟悉,很容易   加快我的发展。我的建议:   使用ZendFramework。

*

我目前遇到同样的问题:

我的故事: 我一直在使用CakePHP,直到我想扩展我的项目规模。 CakePHP没有我想要的那么灵活。 所以我尝试使用ZendFramework。

我第一次阅读“快速入门”指南时,我有点害怕为简单的留言板应用程序提供那么多文件。

在使用ZendFramework“玩”一段时间后,我决定在我自己的自定义框架中使用ZF作为第三方库。

问题是,如果你使用Zend的MVC组件,你可能会被迫使用整个框架的30%,因为MVC组件是ZF最重要的部分之一。 我的意思是,如果我使用那么多的框架为什么不应该使用其余的呢?

之后,我决定编写我的COMPLETE自定义框架,而不使用ZendFramework作为第三方库。

现在我坐在一堆文件前面,里面写着关于代码设计的草图。

我会让你了解我的进一步决定。

答案 3 :(得分:3)

Zend框架:巨大,灵活,模块化。 我只会在建立企业大型超系统时使用。

但是,我正在使用 Yii Framework ,我喜欢它。 因为:非常快,简单,小部件(易于重用组件,这非常好)。

Yii它更易于使用,因为它不是企业框架,并且在大多数情况下都具有您真正需要的所有基本功能。

答案 4 :(得分:1)

老实说,我认为这取决于你的风格。对这个问题的回答都没有尽头。

ZF在很大程度上依赖于经典且经过验证的设计原则。它也是非常可扩展的,但需要比“约定”更多的“配置”。我个人不信任第三方代码,所以我更喜欢冗长,为了更熟悉我正在使用的技术。但那只是我。

我还成功地使用了CakePHP和我工作的公司专有的两个其他框架,取得了巨大的成功。他们都在尝试做类似的事情,只选择最适合你的事情。

答案 5 :(得分:1)

我个人已经成功地将CakePHP用于大型和小型项目,但通常很难让它按照您想要的方式进行预算。我使用Cake的原因仍然在于社区支持是一流的,安全更新通常是,并且他们不会强制使用元数据包(例如单元测试)(虽然这是捆绑的,你可以只是如果你对使用内置包不感兴趣,请使用它。

总而言之,在过去的几个月里,它为我制作了一个很好的系统,但是我一次又一次地听到Symphony太棒了,所以你可能会想到你的第一个想法。由于NetBeans支持Symphony,我可能不久就会发现需要切换。